CrashLoopBackOff
указывает, что контейнер неоднократно аварийно завершает работу после перезапуска. Контейнер может взломать sh по многим причинам, и проверка журналов пода может помочь в устранении причины root.
Помимо текстового сообщения об ошибке Does not have minimum availability
, могут быть другие текстовые сообщения об ошибках, например Failed to pull image
. Однако я рекомендую вам определять текстовые сообщения об ошибках, которые подходят для вашей среды. Вы можете проверить это с помощью kubectl logs <pod_name>
или в программе просмотра журналов.
Для справки, вот объяснения проблем pod :
- CrashLoopBackOff означает, что контейнер был загружен, но не запустился
- ImagePullBackOff означает, что изображение не было загружено
- «Нет минимальной доступности» означает, что в кластере нет доступных ресурсов, но не указано c из-за нехватки ресурсов. Например, могут быть узлы, но модуль не может быть запланирован для них в соответствии с развертыванием.
- «Недостаточно ЦП» означает, что на узлах недостаточно ЦП.
- «Не подлежит планированию» указывает, что ваш под не может быть запланирован из-за недостатка ресурсов или некоторой ошибки конфигурации.
Имея это в виду, вот пошаговая инструкция по созданию метри c на основе журнала для последующего создания на его основе предупреждений.
Настройка Метри на основе журналов c с использованием параметров:
resource.type="k8s_pod"
severity>=WARNING
unschedulable
Вы можете заменить фильтр на более подходящий для вашего случая.
Создайте метку в метрике c, которая позволит вам идентифицировать модуль, который имел unschedulable
(или другой статус). Это также поможет с группировкой при создании оповещения для отказавшего модуля.
В Stackdriver Monitoring создайте оповещение со следующими параметрами.
- Установите тип ресурса
k8s_pod
- Установите метрику c на тот, который вы создали на шаге 1
- Установите
Group By
на pod_name
(также созданный на шаге 1) - В разделе расширенной агрегации установите выравниватель на
sum
и период выравнивания на 5m
(или то, что вы считаете более подходящим). - Настройте условие запускает
For
дольше 1 минуты, чтобы предупреждение не срабатывало снова и снова. Это также можно настроить в соответствии с вашими требованиями.
Надеюсь, эта информация будет полезной. Если у вас есть какие-либо вопросы, дайте мне знать в комментариях.