Menu
Coddy logo textTech

Циклы сбоев

Часть раздела Введение в Kubernetes путешествия по Terminal на Coddy. Урок 24 из 45.

Ожидается, что контейнер будет продолжать работу. Когда его процесс завершается, Kubernetes перезапускает его (политика перезапуска Pod — restartPolicy — по умолчанию имеет значение Always). Если он снова и снова завершается, статус становится CrashLoopBackOff, а значение в столбце RESTARTS увеличивается; перед каждым перезапуском пауза становится длиннее.

Вот контейнер, который выводит сообщение и намеренно завершается с ошибкой:

kubectl run crash --image=busybox -- sh -c "echo boom; exit 1"

Всё после -- — это команда, которую выполняет контейнер. Несколько раз выведите список Pod и проследите, как статус меняется с Running на Error, а затем на CrashLoopBackOff.

Причина указана в журналах: kubectl logs crash выводит boom — последнее, что сказал контейнер. Даже образу, в котором нечего запускать, например обычному busybox, ничего не мешает сразу завершиться, после чего он попадает в тот же цикл: Pod нужен процесс, который продолжает работать.

challenge icon

Задание

Легко

Запустите Pod с именем crash из образа busybox, выполняющий команду sh -c "echo boom; exit 1". Выведите его журналы, затем дважды выведите список Pod и наблюдайте, как статус достигнет CrashLoopBackOff.

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

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Введение в Kubernetes

Потренируйтесь самостоятельно: Песочница Terminal