A drain or upgrade stalls after autoscaling and rollout settings were changed independently across teams.
A PodDisruptionBudget looks safe and node drains still stall because rollout limits and HPA behavior already consumed the same availability margin
The PDB is valid, yet evictions freeze because other controllers have already spent the headroom the budget expects to protect.
Scenario
What to check first
- Identify the primary failure signal in the The Budget Was Correct and Another Controller Had Already Spent It scenario.
- Separate visible symptoms from the underlying technical dependency.
- Describe the safest recovery path and the follow-up prevention work.
Checking checklist
- Summarize the current impact and the last known change.
- Collect direct evidence from logs, runtime state, and configuration before changing anything.
- Separate immediate recovery from permanent prevention work.
Recovery and prevention
Model disruption headroom across all controllers before weakening the PDB.
Questions worth viewing together
Community-field Kubernetes problem inspired by community patterns where a PDB stalled drains because rollout and HPA settings had already spent the budget. PDB math interacts with rollout and autoscaling limits as one shared availability budget.
Teams often blame the PDB alone when another controller already consumed the same disruption margin.
Availability-related setting changes should trigger a review of all budgets and rollout limits together.
Similar cases seen in the field