Back to all scenarios
Scenario #15
Cluster Management
K8s v1.21, production cluster with HPA and PDB
Node Drain Fails Due to PodDisruptionBudget Deadlock
kubectl drain never completed because PDBs blocked eviction.
Find this helpful?
What Happened
A deployment had minAvailable: 2 in PDB, but only 2 pods were running. Node drain couldn’t evict either pod without violating PDB.
Diagnosis Steps
- 1Ran kubectl describe pdb <name> – saw AllowedDisruptions: 0.
- 2Checked deployment and replica count.
- 3Tried drain – stuck on pod eviction for 10+ minutes.
Root Cause
PDB guarantees clashed with under-scaled deployment.
Fix/Workaround
• Temporarily edited PDB to reduce minAvailable.
• Scaled up replicas before drain.
Lessons Learned
PDBs require careful coordination with replica count.
How to Avoid
- 1Validate PDBs during deployment scale-downs.
- 2Create alerts for PDB blocking evictions.