(Частые проблемы с подами, причины, команды отладки и исправления)
kubectl get pods -n <ns>kubectl describe pod <pod> -n <ns>kubectl logs <pod> -n <ns>kubectl logs <pod> -n <ns> --previouskubectl get events -n <ns> --sort-by=.lastTimestampkubectl get nodeskubectl top pod -n <ns>kubectl exec -it <pod> -n <ns> -- /bin/bashkubectl get all -n <ns>| # | Проблема | Симптомы / ошибка | Возможные причины | Команды для диагностики | Исправление |
|---|---|---|---|---|---|
| 1 | CrashLoopBackOff | Под постоянно перезапускается | Сбой приложения, неверный конфиг, отсутствует env, ошибка подключения к БД | kubectl describe pod <pod>kubectl logs <pod> --previous |
|
| 2 | ImagePullBackOff | Не удаётся загрузить образ | Неверное имя образа, нет прав, приватный репозиторий | kubectl describe pod <pod>kubectl get events -n <ns> |
|
| 3 | Pending | Под застрял в Pending | Недостаточно ресурсов, проблемы узлов, taints/tolerations, PVC не привязан | kubectl describe pod <pod>kubectl get nodeskubectl get pvc -n <ns> |
|
| 4 | OOMKilled | Контейнер завершён (код выхода 137) | Превышен лимит памяти | kubectl describe pod <pod>kubectl logs <pod> --previous |
|
| 5 | RunContainerError | Под не запускается | Неверные command/args, отсутствуют файлы, проблема с правами | kubectl describe pod <pod>kubectl logs <pod> |
|
| 6 | CreateContainerError | Ошибка создания контейнера | Неверная конфигурация, нет secrets / configmap, проблема с томом | kubectl describe pod <pod> |
|
| 7 | ContainerNotReady | Под запущен, но не готов | Readiness probe не проходит, приложение не запустилось | kubectl describe pod <pod>kubectl logs <pod> |
|
| 8 | NodeNotReady | Поды не планируются | Узел недоступен, проблемы с сетью, нехватка ресурсов | kubectl get nodeskubectl describe node <node> |
|
| 9 | Evicted | Под выселен с узла | Давление по диску или памяти, состояние узла | kubectl get events -n <ns>kubectl describe pod <pod> |
|
| 10 | Terminating (Stuck) | Под завис в статусе Terminating | Finalizers, процесс не завершается, проблема с сетью | kubectl describe pod <pod>kubectl get pod <pod> -o yaml |
kubectl delete pod <pod> --force --grace-period=0 |
Имя: my-app-7d6f9c8bdf-abc12 Namespace: production Статус: CrashLoopBackOff IP: 10.244.1.23 Узел: ip-10-0-1-23 / 10.0.1.23 Контейнеры: my-app: Состояние: Ожидание Причина: CrashLoopBackOff Последнее состояние: Завершён Причина: Error Код выхода: 1 Готов: False Перезапусков: 5
kubectl get podskubectl describe podkubectl logs --previouskubectl get events:latest)