Pod Stuck in Pending or Unschedulable in Kubernetes
Diagnose why your pod won't schedule — node resources, taints, affinity, and missing PVCs.
Problem
Your pod sits in `Pending` and never gets scheduled to a node. `kubectl describe pod` shows `0/3 nodes are available`.
Root cause
- Insufficient CPU/memory on every node.
- Node selector, affinity, or tolerations don't match any node.
- PersistentVolumeClaim is unbound.
- Cluster autoscaler is disabled or capped.
Solution
Read the scheduler events
kubectl describe pod <pod> | tail -20Check node capacity
kubectl top nodes && kubectl describe node <node> | grep -A5 AllocatedFix common cases
- Lower `resources.requests` to fit available capacity.
- Add a matching label to a node or remove the affinity rule.
- Add a toleration if the node is tainted.
- Provision the StorageClass or PV that the PVC needs.
Frequently asked questions
Related fixes
Kubernetes
7 minHow to Fix CrashLoopBackOff in Kubernetes
A practical, step-by-step guide to diagnosing and fixing CrashLoopBackOff errors in Kubernetes pods.
#pods#debugging#kubectl
Kubernetes
5 minFix ImagePullBackOff and ErrImagePull in Kubernetes
Why ImagePullBackOff happens and how to fix it — registry auth, wrong tags, and private images.
#images#registry#secrets
Weekly digest
One DevOps fix in your inbox each week
Short, practical, no fluff. Real errors, real fixes — straight from production postmortems.