Можно ли записывать ConfigMaps в Kubernete? - PullRequest
0 голосов
/ 28 августа 2018

Можно ли напрямую изменить файл, смонтированный с помощью configMap? У нас есть приложение, которое считывает файл конфигурации типа configMap, и приложение должно иметь возможность редактировать файл, и изменения должны сохраняться, если configMap используется совместно с другими модулями и когда модуль перезапускается.

Если configMap не предназначен для этого, то что мы должны включить consul, чтобы сохранить конфигурацию?

Ответы [ 3 ]

0 голосов
/ 29 августа 2018

Да, карта конфигурации не предназначена для записи . Если вы взаимодействуете с файлами из configmap, вы можете вместо этого поместить файлы в записываемый том и смонтировать том . Или вы можете, как вы предлагаете, использовать централизованную конфигурацию, как консул. Учитывая, что приложение динамически записывает эти данные, вы можете рассматривать их как состояние, а не как конфигурацию. Затем он может быть сохранен в базе данных. Другим вариантом может быть распределенный кеш , такой как redis или hazelcast.

0 голосов
/ 18 января 2019

Из документа Kubernetes, его можно обновить, см. ссылка

Когда обновляется карта ConfigMap, уже используемая в томе, спроецированные ключи в конечном итоге также обновляются. Kubelet проверяет, является ли установленный ConfigMap свежим при каждой периодической синхронизации. Тем не менее, он использует свой локальный кэш на основе ttl для получения текущего значения ConfigMap. В результате общая задержка с момента обновления ConfigMap до момента, когда новые ключи проецируются на модуль, может составлять столько же, сколько период синхронизации kubelet + ttl кэша ConfigMaps в kubelet.

0 голосов
/ 28 августа 2018

AFAIK изменения в ConfigMap будут существовать только локально в памяти.
То есть изменения не видны другим модулям, и при перезапуске они будут потеряны.

Одним из решений является использование двоичного файла kubectl или API kubernetes из приложения настройки для воссоздания ConfigMap после изменений конфигурации.

например. kubectl apply -f /path/to/updated/config.yaml

...