Практическое задание

Эта задача — шаг 3 курса «Kubernetes на практике»

Под в CrashLoopBackOff

средне~12 мин

В кластере работает Deployment api, но его под падает сразу после старта и уходит в CrashLoopBackOff. Выясни причину по логам и почини Deployment так, чтобы под работал. Команду контейнера не меняй: нужное ему значение уже лежит в кластере, в ConfigMap api-config — подключи его.

Что потренируешь:
  • kubernetes
  • kubectl
  • configmap
  • отладка подов
  • crashloopbackoff

Разбор темы

CrashLoopBackOff — не причина, а симптом: контейнер завершается, kubelet перезапускает его со всё большей паузой. Причину ищут в выводе самого контейнера: kubectl logs показывает текущий запуск, а --previous — предыдущий, уже упавший. Частая причина — приложению не хватает настройки. В Kubernetes настройки держат отдельно от образа, в ConfigMap, и подают в контейнер переменными окружения: все ключи сразу через envFrom, по одному — через valueFrom.configMapKeyRef. Изменение шаблона пода — это новый выкат: Deployment заменит падающий под новым.

Что проверяется

  1. под api работает
  2. команда контейнера не изменена
  3. значение берётся из ConfigMap api-config
  4. под печатает значение из ConfigMap

Как это выглядит