A routine node maintenance window stalls when storage-backed workloads and their plugin surfaces cannot be drained in the expected order.
Node drain keeps hanging because the CSI node plugin and a strict PDB together prevent the final attachment cleanup from finishing
Maintenance looks blocked by disruption budgets, yet the real deadlock is between attachment cleanup timing and the plugin pods that cannot disappear safely.
Scenario
What to check first
- Identify the primary failure signal in the Drain and CSI Cleanup Deadlock 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
Analyze volume attachment cleanup and plugin behavior alongside disruption policy.
Questions worth viewing together
Community-field Kubernetes maintenance problem inspired by operator discussions where CSI cleanup timing and PDBs stalled node drains. A drain stall can be a storage lifecycle problem disguised as a PDB problem.
Teams often relax the PDB immediately when the deeper issue is attachment cleanup order with CSI components.
Storage plugins and disruption policy can deadlock node maintenance in subtle ways.
Similar cases seen in the field