Ответ вслух Middle ConfigMap и Secret обновлено

Конфигурация приложения в Kubernetes

Вопрос

Как организуешь конфигурацию и секреты приложения в Kubernetes для трёх окружений?

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

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

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

Коротко

Принцип: один образ на все окружения, отличается только конфигурация. Несекретные настройки кладу в ConfigMap, секреты в Secret, но сами значения секретов живут во внешнем хранилище, Vault или облачном менеджере, и попадают в кластер через External Secrets Operator.

Что должно прозвучать в ответе

  • Один образ для всех окружений, различия только в конфигурации (12 factor)

  • Несекретное в ConfigMap, секреты в Secret из внешнего хранилища, не в git

  • Значения по окружениям через Helm values или kustomize overlays

  • Переменные для простых настроек, файлы для сложных; понимать, что env не обновляется без рестарта

  • Автоматический rollout при смене конфига: checksum-аннотация или неизменяемые ConfigMap с версией в имени

  • RBAC на секреты, шифрование etcd, ротация секретов

Что могут спросить следом

  • Как ротировать пароль базы без простоя?
  • Что лучше: переменные или файлы?

Разбор

Принцип: один образ на все окружения, отличается только конфигурация. Несекретные настройки кладу в ConfigMap, секреты в Secret, но сами значения секретов живут во внешнем хранилище, Vault или облачном менеджере, и попадают в кластер через External Secrets Operator. Различия между окружениями описываю в Helm values или kustomize overlays, всё это в git. Простые настройки передаю переменными окружения, сложные конфиги и секреты файлами: файлы обновляются без пересоздания пода и не утекают в дампы окружения. Чтобы изменение конфигурации гарантированно применялось, добавляю хеш конфига в аннотацию шаблона пода, тогда Deployment сделает rolling update. На уровне кластера: RBAC, при котором доступ к секретам есть только у тех, кому нужно, шифрование секретов в etcd, разделение по namespace. И закладываю ротацию: пароль базы меняется так, что старый и новый какое-то время действуют оба, приложение переходит на новый, затем старый отзывается.

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

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