Как заставить configmap распространяться на запущенные поды (без их перезапуска)

При изменении переменной в configmap переменные среды внутри запущенных модулей не обновляются.

У нас есть модуль с отслеживанием состояния, который нельзя легко перезапустить.

Попытка обновить переменную среды внутри контейнера с помощью

export VARIABLE_TO_BE_UPDATED="new value"

длится некоторое время, но затем автоматически откатывается через некоторое время (возможно, это связано с открытым сеансом).

Есть ли способ постоянно обновлять эти переменные среды (вручную) без перезапуска модуля?


person xyz    schedule 27.01.2021    source источник
comment
Может быть, вы можете посмотреть шаблон sidecar для динамических конфигураций.   -  person Mücahit Inel    schedule 27.01.2021


Ответы (1)


Вы не можете повторно загрузить уже смонтированную карту ConfigMap. ConfigMap считывается из API и выгружается в том перед запуском контейнера, после чего он остается статичным.

Другой способ сделать это может заключаться в использовании контейнера боковой карты, отслеживании изменений этих карт ConfigMaps, обновлении копий в некотором томе, который будет использоваться совместно с контейнером приложения, а затем инструктировании вашего приложения перезагрузить его конфигурацию. Обычной реализацией для этого может быть Prometheus Rule Reloader.

person SYN    schedule 27.01.2021
comment
Спасибо за подробное объяснение. Подробнее об этой реализации. - person xyz; 28.01.2021