Средний

ConfigMaps, Secrets и health probes

Урок 3 из 3 в курсе Kubernetes для backend-разработчика

Содержание курса (3/3)

ConfigMaps, Secrets и health probes

способы прокинуть конфиг и секреты в поды и сообщить кластеру о здоровье приложения.

Почему это важно: Без правильного управления конфигом приложение ломается при деплое в новое окружение, без probes — при обновлениях.

Главная идея

Конфиг отделяется от образа через ConfigMap/Secret, а готовность пода определяется через liveness/readiness/startup probes.

Как это выглядит на практике

  1. Создаётся ConfigMap с переменными окружения для dev/staging/prod.
  2. Secrets хранят чувствительные данные (пароли, токены) в base64 (или через external secrets).
  3. Pod монтирует их как env-переменные или файлы.
  4. 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 приложения.

Термины урока

ConfigMap: ресурс для нечувствительной конфигурации.
Secret: ресурс для секретов (пароли, токены).
Liveness probe: проверка, что контейнер живой.
Readiness probe: проверка готовности принимать трафик.
External Secrets: интеграция с внешними vault-системами.

Связь с работой backend-разработчика

Грамотная работа с конфигом, секретами и probes — то, что отличает production-ready Kubernetes-приложение от тестового.

Мини-разбор реальной ситуации

Сервис деплоился без readinessProbe. После rolling update пользователи получали 502 на 5–10 секунд — пока новые поды стартовали. Добавление readinessProbe полностью решило проблему.

Что запомнить

  • Конфиг — снаружи образа.
  • Secrets ≠ зашифровано по умолчанию.
  • Probes обязательны для zero-downtime.

Итог

ConfigMaps, Secrets и probes — фундамент эксплуатации сервисов в Kubernetes. Без них вы получаете контейнер, который запускается, но не работает надёжно.

Комментарии к уроку

Войдите, чтобы оставить комментарий.

Пока нет комментариев — будьте первым.