kubernetes монтирует каталог только для чтения во всех репликах pod

Каков наилучший способ смонтировать внешний каталог в модуле так, чтобы:

  1. доступ к каталогу только для чтения
  2. все дерево каталогов доступно в модуле
  3. любое изменение содержимого каталога или создание новых файлов и каталогов в этом каталоге мгновенно отражается в модуле.
  4. все копии модуля видят одно и то же дерево каталогов

Очевидно, что любое решение с ConfigMaps не удовлетворяет условиям 2 и 3.

1 ответ

Используя configMap-s, можно выполнить все требования (1) - (4), кроме части (3) - изменения в содержимом существующих файлов (путем изменения их configMap-s) будут отражены в модулях (почти) мгновенно, но новые файлы или каталоги не будут.

Следующий скрипт - см. Здесь - реализует подход.

Заметить, что:

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