Pod Disruption Budget (PDB) guarantees a minimum number of running Pods during planned disruptions.
1apiVersion: policy/v12kind: PodDisruptionBudget3metadata:4 name: myapp-pdb5 namespace: production6spec:7 minAvailable: 28 selector:9 matchLabels:10 app: myapp
Alternative with maxUnavailable:
1apiVersion: policy/v12kind: PodDisruptionBudget3metadata:4 name: myapp-pdb5spec:6 maxUnavailable: 17 selector:8 matchLabels:9 app: myapp
minAvailable vs maxUnavailable:
minAvailable: 3 — always at least 3 Pods.maxUnavailable: 1 — at most 1 Pod unavailable.maxUnavailable: 25% — at most 25% of Pods.Verification:
1kubectl get pdb -n production2kubectl describe pdb myapp-pdb -n production
Important: PDB only works with planned disruptions (drain, eviction). Kill -9 is not blocked.