Я использую k8s с версией 1.11 и CephFS в качестве хранилища.
Я пытаюсь смонтировать каталог, созданный на CephFS, в модуле.Чтобы добиться того же, я написал следующую конфигурацию тома и монтирования тома в конфигурации развертывания
Том
{
"name": "cephfs-0",
"cephfs": {
"monitors": [
"10.0.1.165:6789",
"10.0.1.103:6789",
"10.0.1.222:6789"
],
"user": "cfs",
"secretRef": {
"name": "ceph-secret"
},
"readOnly": false,
"path": "/cfs/data/conf"
}
}
volumeMounts
{
"mountPath": "/opt/myapplication/conf",
"name": "cephfs-0",
"readOnly": false
}
Монтирование работает правильно.Я вижу директорию ceph, т.е. / cfs / data / conf, монтируемую в / opt / myapplication / conf, но моя проблема заключается в следующем.
У меня уже есть файлы конфигурации как часть образа докера в местоположении /выбрать / MyApplication / конф.Когда развертывание пытается смонтировать том ceph, все файлы в каталоге / opt / myapplication / conf исчезают.Я знаю, что это поведение операции монтирования, но есть ли способ сохранить существующие файлы в контейнере на томе, который я монтирую, чтобы другой модуль, монтирующий тот же том, мог получить доступ к конфигурациифайлы.т.е. файлы, которые уже находятся внутри модуля в каталоге / opt / myapplication / conf, должны быть доступны на CephFS в каталоге /cfs/data/conf.
Возможно ли это?
Я просмотрел документ докера, и в нем упоминается, что
Заполнение тома с помощью контейнера. Если вы запускаете контейнер, который создает новый том, как указано выше, и у контейнера есть файлы или каталоги в каталоге, чтобыпри монтировании (например, / app / вышеуказанное) содержимое каталога копируется в том.Затем контейнер монтирует и использует том, а другие контейнеры, использующие том, также имеют доступ к предварительно заполненному контенту.
Это соответствует моему требованию, но как этого достичь с томами k8s?