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.

Jul 16, 2024·7 min readBeginner

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.

bash — always start herelive
kubectl describe pod api-7c9 | tail -n 6
Events:
FailedScheduling: 0/6 nodes available: 6 Insufficient cpu
the reason is right there — no guessing needed

The five usual causes

What the event tells you
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 + readiness
kubectl describe node <n> | grep -A4 Taints
kubectl get pvc # Pending PVC blocks the pod
kubectl 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.
Go deeper in a courseKubernetes administrationScheduling, troubleshooting, and day-2 operations.View course

Related posts