English version

KubePodNotReady: что делать при алерте

Правило алерта

alert: KubePodNotReady
expr: sum by (namespace, pod) (kube_pod_status_phase{phase=~"Pending|Unknown"}) > 0
for: 15m
severity: warning

Сообщение алерта: Pod {{ $labels.namespace }}/{{ $labels.pod }} не готов

Что значит

Pod 15 минут находится в фазе Pending или Unknown: Kubernetes не может запустить его на узле либо потерял связь с узлом.

Частые причины

Недостаточно ресурсов (CPU/память) на узлах, не удовлетворяются nodeSelector/affinity/taints, PVC не привязывается, узел недоступен, ресурсные квоты namespace.

Диагностика

kubectl -n <ns> describe pod <pod>              # раздел Events: FailedScheduling и причина
kubectl get nodes
kubectl top nodes
kubectl -n <ns> get pvc
kubectl -n <ns> describe resourcequota

Как исправить

Добавить ресурсы/узлы, ослабить ограничения планирования, исправить PVC/StorageClass, вернуть узел в работу. Для неудачно настроенных requests уменьшите их.

Когда можно заглушить

Если Pod намеренно ждёт (например, на узле с GPU, которого пока нет) и это известно.

Похожие алерты

Весь набор из 44 протестированных правил + Alertmanager → Telegram: 790 ₽
Открыть в Telegram · Бесплатный набор Monitoring Lite · Все алерты runbook