BlogKubernetes
Debugging Pending pods: the five usual causes
Insufficient resources, taints, affinity, PVCs, and quotas — how to read the events and fix each one fast.
A pod stuck in Pending has not been scheduled to a node yet, and Kubernetes almost always tells you why in the events. Read those first — then it is one of five usual causes. Guessing wastes time the events would have saved.
kubectl describe pod api-7c9 | tail -n 6Events: FailedScheduling: 0/6 nodes available: 6 Insufficient cputhe reason is right there — no guessing neededThe five usual causes
Reason
Insufficient cpu/memory
node(s) had taint
no nodes match affinity
unbound PVC
exceeded quota
Fix
lower requests / add nodes
add a toleration
fix nodeSelector/affinity
check StorageClass
raise/clear ResourceQuota
Work each one
bash
kubectl get nodes -o wide # capacity + readinesskubectl describe node <n> | grep -A4 Taintskubectl get pvc # Pending PVC blocks the podkubectl get resourcequota -n shop # quota exhaustion
describe before delete
Deleting and recreating a Pending pod changes nothing if the cause is capacity or a taint — it comes back Pending. Read the event, fix the cause.