← Problem Library
K8s L4 K8S 1380 · 12 min

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.

K8sPlatform ReliabilityLevel 4Pro12 min
Scenario

A drain or upgrade stalls after autoscaling and rollout settings were changed independently across teams.

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
  1. Summarize the current impact and the last known change.
  2. Collect direct evidence from logs, runtime state, and configuration before changing anything.
  3. Separate immediate recovery from permanent prevention work.
Recovery and prevention

Model disruption headroom across all controllers before weakening the PDB.

Questions worth viewing together
What should you verify first when A PodDisruptionBudget looks safe and node drains still stall appears?

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.

What usually causes A PodDisruptionBudget looks safe and node drains still stall in production?

Teams often blame the PDB alone when another controller already consumed the same disruption margin.

What should you document after resolving A PodDisruptionBudget looks safe and node drains still stall?

Availability-related setting changes should trigger a review of all budgets and rollout limits together.