Back to Glossary
Operations

PodDisruptionBudget(PDB)

A policy object that limits how many Pods of a deployment can be simultaneously unavailable during voluntary disruptions.

Also known as: PDB

What is PodDisruptionBudget?

A PodDisruptionBudget (PDB) is a Kubernetes policy object that constrains voluntary disruptions — planned events where Kubernetes or administrators intentionally evict or delete Pods, such as node drains for maintenance, Cluster Autoscaler scale-down, Karpenter consolidation, or rolling updates. A PDB specifies either a minimum number of available Pods (minAvailable) or a maximum number of unavailable Pods (maxUnavailable) for a set of Pods matched by label selector.

When a disruption is attempted (e.g., kubectl drain a node), the eviction API checks all PDBs matching the Pods on that node. If the disruption would violate any PDB — taking available count below minAvailable — the eviction is rejected and the drain blocks until the constraint is satisfied (either by other Pods recovering or by timeout). This protection is critical for maintaining service availability during cluster maintenance windows.

PDBs only protect against voluntary disruptions. Involuntary disruptions (node hardware failures, OOMKills, kernel panics) bypass PDBs — they cannot prevent a Pod from being killed by the OS or lost due to infrastructure failure. For protection against involuntary disruptions, replicas and topology spread constraints are the correct tools.

Example

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: web-api-pdb
  namespace: production
spec:
  minAvailable: 2    # Always keep at least 2 pods running
  selector:
    matchLabels:
      app: web-api
---
# Alternative: maxUnavailable style
spec:
  maxUnavailable: 1  # Allow at most 1 pod to be unavailable at once
  selector:
    matchLabels:
      app: web-api

Cost & Waste Implications

PDBs with overly strict settings (minAvailable equal to replica count, or maxUnavailable: 0) block Cluster Autoscaler and Karpenter from draining underutilized nodes, preventing scale-down and locking in excess node costs. A cluster where CA cannot consolidate nodes due to blocking PDBs can incur 20–40% higher node costs than necessary. PDBs should be set to allow at least one Pod to be evicted.

KorPro— Kubernetes Cost Optimization

How KorPro Helps

KorPro identifies PDBs with configurations that block node consolidation and quantifies how much those blocking PDBs cost by preventing Cluster Autoscaler or Karpenter from reclaiming underutilized nodes.

Scan Your Cluster Free

Stop Wasting Money on Orphaned Kubernetes Resources

KorPro connects to your clusters across GCP, AWS, and Azure — no agents, no installation — and surfaces every orphaned resource with its monthly cost estimate.