Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если у pod статус CrashLoopBackOff
, то, вероятно, произошел сбой или неожиданное завершение, и журнал содержит код выхода, который не равен нулю. Ниже приведены несколько возможных причин, по которым модуль pod застрял в CrashLoopBackOff
режиме:
- Сбой приложения: приложение внутри контейнера завершается вскоре после запуска, часто из-за неправильной настройки, отсутствия зависимостей или неправильных переменных среды.
- Неверные ограничения ресурсов: если модуль pod превышает ограничения ресурсов ЦП или памяти, Kubernetes может убить контейнер. Эта проблема может возникнуть, если запросы или лимиты ресурсов установлены слишком низко.
- Отсутствуют или неправильно настроены ConfigMaps/Secret: если приложение использует файлы конфигурации или переменные среды, хранящиеся в ConfigMaps или Секретах, но они отсутствуют или неправильно настроены, приложение может завершиться сбоем.
- Проблемы с извлечением изображения: если с изображением возникла проблема (например, поврежден или имеет неправильный тег), контейнер может не запускаться должным образом и завершаться сбоем.
- Не работают контейнеры инициализации: Если под имеет контейнеры инициализации, и если один или несколько не работают должным образом, под будет перезапущен.
- Сбои пробы активности и готовности: если пробы активности или готовности неправильно настроены, Kubernetes может обнаружить контейнер как неработоспособный и перезапустить его.
- Зависимости приложений не готовы: приложение может зависеть от служб, которые еще не готовы, например баз данных, очередей сообщений или других API.
- Проблемы с сетью: неправильно настроенные сети могут препятствовать взаимодействию приложения с необходимыми службами, что приводит к сбою.
-
Недопустимые команды или аргументы: контейнер может быть запущен с недопустимым
ENTRYPOINT
, командой или аргументом, что приводит к сбою.
Дополнительные сведения о состоянии контейнера см. в разделе "Жизненный цикл pod — состояния контейнера".
Рассмотрим следующие параметры и связанные команды kubectl .
Вариант | Команда kubectl |
---|---|
Отладка самого модуля pod | kubectl describe pod <pod-name> |
Отладка контроллеров репликации | kubectl describe replicationcontroller <controller-name> |
Чтение сообщения о завершении | kubectl get pod <pod-name> --output=yaml |
Проверка журналов | kubectl logs <pod-name> |
Примечание.
Модуль pod также может иметь CrashLoopBackOff
состояние, если оно завершило развертывание, но оно настроено для перезапуска, даже если код выхода равен нулю. Например, если вы развертываете образ "занято" без указания аргументов, образ запускается, запускается, завершается, а затем перезапускается в цикле:
$ kubectl run nginx --image nginx
pod/nginx created
$ kubectl run busybox --image busybox
pod/busybox created
$ kubectl get pods --watch
NAME READY STATUS RESTARTS AGE
busybox 0/1 ContainerCreating 0 3s
nginx 1/1 Running 0 11s
busybox 0/1 Completed 0 3s
busybox 0/1 Completed 1 4s
busybox 0/1 CrashLoopBackOff 1 5s
$ kubectl describe pod busybox
Name: busybox
Namespace: default
Priority: 0
Node: aks-nodepool<number>-<resource-group-hash-number>-vmss<number>/<ip-address-1>
Start Time: Wed, 16 Aug 2023 09:56:19 +0000
Labels: run=busybox
Annotations: <none>
Status: Running
IP: <ip-address-2>
IPs:
IP: <ip-address-2>
Containers:
busybox:
Container ID: containerd://<64-digit-hexadecimal-value-1>
Image: busybox
Image ID: docker.io/library/busybox@sha256:<64-digit-hexadecimal-value-2>
Port: <none>
Host Port: <none>
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Completed
Exit Code: 0
Started: Wed, 16 Aug 2023 09:56:37 +0000
Finished: Wed, 16 Aug 2023 09:56:37 +0000
Ready: False
Restart Count: 2
Если вы не распознаете проблему после создания дополнительных модулей pod на узле, запустите модуль pod на одном узле, чтобы определить, сколько ресурсов на самом деле использует модуль pod.
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье обсуждаются сторонние продукты, которые производятся компаниями, независимыми от Microsoft. Корпорация Microsoft не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.