Вступить в клуб →
средняявопросKubernetes и Helm

helm upgrade прошёл, но поды работают со старым конфигом

В чарте сервиса значения из values.yaml рендерятся в ConfigMap, который монтируется в под как файл конфигурации. Вы поменяли значение таймаута и выкатили изменение:

$ helm upgrade api ./charts/api -f values-prod.yaml
Release "api" has been upgraded. Happy Helming!

ConfigMap в кластере обновился, но приложение продолжает работать со старым таймаутом. Поды не перезапускались, их возраст — 6 дней.

Почему изменение не доехало и как это лечится в чарте?

  • Helm обновил ConfigMap, но спецификация подов не изменилась, поэтому Deployment не запустил перевыкатку — добавляют аннотацию с контрольной суммой конфигурации в шаблон пода
  • Helm применяет изменения ConfigMap отложенно, нужно дождаться следующей синхронизации кластера
  • Приложение обязано само отслеживать изменение смонтированного файла и перечитывать конфигурацию на лету: со стороны чарта и Deployment здесь сделать нечего, это зона ответственности разработчика
  • Нужно было выполнять обновление с флагом `--force`, тогда Helm пересоздаёт все объекты релиза

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела