kubernetes монтирует каталог только для чтения во всех репликах pod
Каков наилучший способ смонтировать внешний каталог в модуле так, чтобы:
- доступ к каталогу только для чтения
- все дерево каталогов доступно в модуле
- любое изменение содержимого каталога или создание новых файлов и каталогов в этом каталоге мгновенно отражается в модуле.
- все копии модуля видят одно и то же дерево каталогов
Очевидно, что любое решение с ConfigMaps не удовлетворяет условиям 2 и 3.
1 ответ
Используя configMap-s, можно выполнить все требования (1) - (4), кроме части (3) - изменения в содержимом существующих файлов (путем изменения их configMap-s) будут отражены в модулях (почти) мгновенно, но новые файлы или каталоги не будут.
Следующий скрипт - см. Здесь - реализует подход.
Заметить, что:
- (1) теперь по умолчанию, начиная с 1.9.6 - см. Это для обсуждения.
- Ключ для (2) - использование прогнозируемых объемов.
- (4) является готовой функцией, как описано здесь, за исключением случаев использования subPath.
- Использование единой configMap для всех файлов может привести к тому, что "... ОШИБКА: ConfigMap ""недопустима: []: слишком длинная: должна содержать не более 1048576 символов".
- Использование configMap для файла также имеет ограничение размера ~1 МБ для содержимого файла (это ограничение etcd).