Pod Disruption Budgets for Safe Cluster Upgrades

DevOpsKubernetesSRE
Share on LinkedIn Share on X Share on Reddit Share on HN Share on Bluesky

At 2 a.m. during a node pool upgrade, Redis Sentinel lost quorum because three pods were evicted simultaneously. This post is about making pod disruption budgets for safe cluster upgrades boring in the best way — predictable under load, auditable under review, and reversible under stress.

Why this shows up under real load

At 2 a.m. during a node pool upgrade, Redis Sentinel lost quorum because three pods were evicted simultaneously. That is the difference between demo-grade PodDisruptionBudget and production-grade PodDisruptionBudget.

Prioritize Pod Disruption Budgets for Safe Cluster Upgrades before enabling cluster autoscaler consolidation or your first production node drain.

Decision guide for platform teams

Situation Do Avoid
Tier-1 downstream Fail closed on PodDisruptionBudget Warn-only gates
Staging parity Same suite as prod, smaller data Different expectations
Incident response One-click rollback path Manual console edits

Configuration patterns that survived review

Patterns we kept for PodDisruptionBudget:

Rollout without blocking the business

Roll out in waves: internal consumers, 10% traffic or partitions, soak 48h, then full promote. Keep previous artifact version hot-swappable for one release cycle.

Pair rollout with shadow validation where possible — run new checks without blocking, compare results, then enforce.

Monitoring and on-call signals

Dashboards for PodDisruptionBudget belong in the same folder on-call opens first. Link runbooks from alert annotations — not a wiki nobody trusts.

Delete alerts that never fire; add thresholds that would have caught your last incident.

Lessons from production

Pod Disruption Budgets for Safe Cluster Upgrades is load-bearing once traffic and teams scale. Treat changes like any tier-1 deploy: feature flags, observability, rollback.

Document org-specific decisions — CIDRs, cluster names, approval gates — in internal docs that stay current.

Reference configuration

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: redis-sentinel
spec:
  minAvailable: 2
  selector:
    matchLabels:
      app: redis-sentinel

Upgrade coordination

Cluster upgrades, node drains, and workload rollouts interact. PodDisruptionBudgets, PriorityClasses, and native sidecars change termination order — test rollouts on production-shaped replica counts and volume attach/detach timing.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Handoff to adjacent teams

Kubernetes pipelines touch ingestion, serving, and finance. Document interfaces where PodDisruptionBudget gates hand off to downstream owners so failures are not bounced without context.

Operating PodDisruptionBudget at scale

After the first successful deploy of pod disruption budgets for safe cluster upgrades, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of PodDisruptionBudget settings with the on-call rotation — not only the primary author.

Further reading

Frequently asked questions

When should teams prioritize Pod Disruption Budgets for Safe Cluster Upgrades?

Before enabling cluster autoscaler consolidation or your first production node drain.

What is the most common mistake with PodDisruptionBudget?

Setting minAvailable to 100% on stateless Deployments blocks all voluntary evictions.

Namespace-scoped or cluster-wide?

Security baselines cluster-wide; workload-specific tuning per namespace. Document exceptions with expiry dates.

What signal pages first?

User-visible error budget burn or scheduling failures — not average CPU across the cluster.

Hiring a senior Android / Flutter engineer?

I architect and ship production mobile software — Kotlin, Jetpack Compose, Flutter — for robotics, EV infrastructure, fintech, and real-time systems. Open to remote roles in Europe and the US.

Get in touch →