Create a `PodDisruptionBudget` manifest with `apiVersion: policy/v1` and a `selector.matchLabels` targeting the workload pods
Set either `spec.minAvailable` (minimum pods that must remain) or `spec.maxUnavailable` (maximum pods that can be disrupted); do not set both
Apply with `kubectl apply` and verify with `kubectl get pdb`
Check `ALLOWED DISRUPTIONS` column — zero means no voluntary disruption is currently permitted
Test by draining a node with `kubectl drain --ignore-daemonsets` and confirming the PDB prevents eviction beyond the threshold
Known gotchas
A PDB with `minAvailable` equal to the total replica count results in zero allowed disruptions, blocking all node drains — size it to allow at least one unavailable pod
PDBs only govern voluntary disruptions (drains, evictions); they do not prevent involuntary disruptions such as node failure or OOM kills
If no pods currently match the PDB selector (e.g., after a scaling event to zero), the ALLOWED DISRUPTIONS field may be misleading — always verify with `kubectl describe pdb`
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp