A rolling update or node drain stalls after autoscaling and rollout tuning were changed independently.
A PodDisruptionBudget looks correct and voluntary evictions still stall
The PDB is valid, yet upgrades freeze because the deployment's own rollout limits and autoscaling behavior leave no room for another eviction.
Scenario
What to check first
- Identify the primary failure signal in the The Budget Was Safe on Paper and Already Spent by Another Controller 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 controllers before loosening the PDB itself.
Questions worth viewing together
Community-field Kubernetes problem inspired by community patterns where a PDB stalled evictions because rollout and HPA limits had already spent the dis... Disruption budgets interact with rollout and autoscaling limits as one shared availability budget.
Teams often blame an overly strict PDB when another controller already consumed the available disruption margin.
Availability controls should be reviewed together whenever HPA or rollout policies change.
Similar cases seen in the field