Горячее обновление ConfigMap без перезапуска Pod’ов

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

configmapkubernetessidecar

👁 В Kubernetes часто приходится менять конфигурацию сервисов через ConfigMap. По умолчанию Pod не видит изменения, пока не будет пересоздан. Для продакшена это неудобно: хочется изменить параметры «на лету», без даунтайма. С помощью subPath и дополнительного sidecar-контейнера можно динамически подгружать новые конфиги.

📝 Настройка ConfigMap с динамическим обновлением

Создаём ConfigMap с конфигурацией:

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  settings.yaml: |
    log_level: info
    feature_flag: false

Монтируем ConfigMap в Pod через volume:

volumes:
  - name: config
    configMap:
      name: app-config

containers:
  - name: app
    image: myapp:latest
    volumeMounts:
      - name: config
        mountPath: /etc/app/settings.yaml
        subPath: settings.yaml

📝 Sidecar для горячего обновления

Добавляем sidecar, который отслеживает изменения файла и сигнализирует основному контейнеру о перезагрузке конфигурации:

containers:
  - name: reload-watcher
    image: busybox
    command: ['sh', '-c', 'while inotifywait -e modify /etc/app/settings.yaml; do kill -HUP 1; done']
    volumeMounts:
      - name: config
        mountPath: /etc/app/settings.yaml
        subPath: settings.yaml

📌 Теперь основное приложение получает сигнал SIGHUP при изменении конфигурации и может перезагрузить настройки без рестарта Pod.

❗️ Горячее обновление ConfigMap через sidecar — мощный инструмент для продакшн Kubernetes. Он позволяет вносить изменения в конфигурацию без даунтайма, минимизирует риски и ускоряет работу с микросервисами.

tags: #полезно #k8s #разработка

🧭 @recura_tech 🌐 VK 🌐 MAX

Скриншот с примером манифеста ConfigMap и конфигурацией sidecar (inotifywait), тёмная тема терминала с брендом RECURA в углу
Пример манифеста ConfigMap и sidecar для отслеживания изменений и отправки SIGHUP основному контейнеру.

Читайте так же