Выбор ответа Middle ConfigMap и Secret обновлено

Перезапуск подов при смене конфига

Вопрос

Как сделать, чтобы поды Deployment автоматически пересоздавались при изменении их ConfigMap при деплое через Helm?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Добавить в аннотации шаблона пода хеш ConfigMap (checksum/config). Deployment обновляет поды только при изменении spec.template.

Варианты ответа

  1. Kubernetes делает это сам: контроллер Deployment следит за ConfigMap, на которые ссылаются поды
  2. Поставить restartPolicy: Always, тогда kubelet перезапустит поды при смене ConfigMap
  3. Добавить в аннотации шаблона пода хеш ConfigMap (checksum/config)правильный ответ
  4. Уменьшить terminationGracePeriodSeconds, чтобы поды быстрее перечитали конфигурацию

Разбор

Deployment обновляет поды только при изменении spec.template. Хеш конфигурации в аннотации шаблона связывает одно с другим, это стандартный приём в Helm-чартах. Похожий эффект дают ConfigMap с хешем в имени (kustomize) и контроллеры вроде Reloader. restartPolicy касается перезапуска упавших контейнеров, а grace period к этому не относится.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.