ConfigMaps, Secrets и health probes
способы прокинуть конфиг и секреты в поды и сообщить кластеру о здоровье приложения.
Почему это важно: Без правильного управления конфигом приложение ломается при деплое в новое окружение, без probes — при обновлениях.
Главная идея
Конфиг отделяется от образа через ConfigMap/Secret, а готовность пода определяется через liveness/readiness/startup probes.
Как это выглядит на практике
- Создаётся ConfigMap с переменными окружения для dev/staging/prod.
- Secrets хранят чувствительные данные (пароли, токены) в base64 (или через external secrets).
- Pod монтирует их как env-переменные или файлы.
- readinessProbe говорит Service, готов ли под принимать трафик.
Что происходит под капотом
- ConfigMap и Secret — отдельные объекты в API; могут обновляться без пересоздания пода.
- По умолчанию Secrets хранятся в etcd в base64, не зашифрованы. Включайте encryption-at-rest.
- livenessProbe: жив ли процесс. Если false — kubelet перезапустит контейнер.
- readinessProbe: готов ли принимать запросы. Если false — Service исключает под из ротации.
- startupProbe: для медленно стартующих приложений, отключает остальные probes на старте.
Типичные ошибки и заблуждения
- Ошибка: Secrets зашифрованы. Без encryption-at-rest и RBAC они доступны всем с доступом к etcd.
- Ошибка: liveness и readiness — это одно и то же. Они решают разные задачи.
- Ошибка: ConfigMap нельзя менять на лету. Можно, но не все приложения подхватывают изменения.
- Ошибка: Probes — необязательная фича. Без них rolling updates ломаются.
Ключевые выводы
- Конфиг и секреты — отдельные объекты, не часть образа.
- Secrets требуют дополнительной защиты (RBAC, encryption).
- liveness ≠ readiness — разные задачи.
- Probes — обязательная часть production-ready приложения.
Термины урока
Связь с работой backend-разработчика
Грамотная работа с конфигом, секретами и probes — то, что отличает production-ready Kubernetes-приложение от тестового.
Мини-разбор реальной ситуации
Сервис деплоился без readinessProbe. После rolling update пользователи получали 502 на 5–10 секунд — пока новые поды стартовали. Добавление readinessProbe полностью решило проблему.
Что запомнить
- Конфиг — снаружи образа.
- Secrets ≠ зашифровано по умолчанию.
- Probes обязательны для zero-downtime.
Итог
ConfigMaps, Secrets и probes — фундамент эксплуатации сервисов в Kubernetes. Без них вы получаете контейнер, который запускается, но не работает надёжно.
Комментарии к уроку
Войдите, чтобы оставить комментарий.
Пока нет комментариев — будьте первым.