Pod · Node · Cluster · API · OpenShift
Comprehensive error reference for every layer of the Kubernetes stack — with root causes, diagnostic commands, and step-by-step fixes from production experience.
Every Kubernetes error belongs to exactly one layer. Diagnose from the bottom up — pod first, then node, cluster, API server, then platform.
Click any layer to explore errors, causes, diagnostic commands, and step-by-step fixes.
kubectl logs <pod> --previous — find the last error before crashkubectl describe pod → 137 = OOM, 1 = app error, 127 = binary not foundresources.limits.memory and add resources.requests.memoryenv.valueFrom.secretKeyRef and configMapKeyRef keys existstartupProbe with high failureThreshold if app takes long to initializeresources.limits.memory in pod spec (e.g. 256Mi → 512Mi)requests = limits for Guaranteed QoS class — prevents preemptionuntil nc -z db 5432; do sleep 1; done as init commandcrictl rmi --prune, log rotationsystemctl restart containerdls -la /var/run/containerd/containerd.sock/etc/containerd/config.tomlkubectl rollout restart deploy/coredns -n kube-systemkubectl rollout restart ds/kube-proxy -n kube-systemkubectl get netpol -Akubectl patch pvc <name> -p '{"metadata":{"finalizers":null}}'kubectl auth can-i to identify exactly what permission is missingkubectl auth can-i using --as flag againfailurePolicy: Ignore temporarily to restore operationsThe exit code is the fastest way to diagnose a crashed container. Check it first in kubectl describe pod.
| Code | Signal | Meaning | Kubernetes Cause |
|---|---|---|---|
| 0 | — | Graceful exit | Process completed normally. Check if it's expected. |
| 1 | — | General error | Application error — check logs for stack trace. |
| 126 | — | Permission denied | Command not executable — check file permissions in image. |
| 127 | — | Command not found | Missing binary in container image. Check CMD/ENTRYPOINT. |
| 134 | SIGABRT | Abnormal termination | Assert failure, heap corruption — check application. |
| 137 | SIGKILL | OOMKilled / forced kill | Memory limit exceeded → increase resources.limits.memory |
| 139 | SIGSEGV | Segmentation fault | Null pointer or buffer overflow in application. |
| 143 | SIGTERM | Graceful termination | Kubernetes graceful shutdown signal. Normal during drain. |