Interview › Kubernetes, Docker, Helm & Podman
What is a PodDisruptionBudget, and how does it protect availability during maintenance?
Kubernetes, Docker, Helm & Podman · Intermediate level
Answer
A PodDisruptionBudget limits voluntary disruptions by specifying minAvailable or maxUnavailable. It protects availability during node drain, upgrades, or autoscaler scale-down, but it does not prevent involuntary failures.
Technical explanation
PDBs only affect voluntary disruptions through the eviction API; node crashes can still take Pods down.
Overly strict PDBs can block upgrades and drains, so set them according to replica count and real availability needs.
Troubleshooting starts from state and events: get, describe, logs, previous logs, events, and then node/runtime/network checks.
Separate scheduling failures, image pull failures, runtime failures, app failures, and traffic-routing failures so you do not fix the wrong layer.
Operational commands like drain and rollback must respect PDBs, probes, and workload disruption tolerance.
Hands-on example
1. In a non-production namespace, create this safe broken scenario: create a PDB and observe how it affects kubectl drain.
2. Follow a fixed triage order: kubectl get, describe, logs or logs --previous, events, rollout status, node status, and then runtime/network checks.
3. Fix only one variable at a time so the root cause is clear rather than accidentally masked.
4. Save the commands and final diagnosis as an interview-ready incident walkthrough.
Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.
More Kubernetes, Docker, Helm & Podman interview questions
- What is Kubernetes, and what problem does it solve over running containers manually?
- Explain the Kubernetes control plane components (API server, etcd, scheduler, controller manager).
- What runs on a worker node (kubelet, kube-proxy, container runtime)?
- What is a Pod, and why does Kubernetes schedule Pods rather than containers?
- What is the difference between a Pod, a ReplicaSet, and a Deployment?
- How does a Deployment perform a rolling update, and how do maxSurge and maxUnavailable work?
- How do you roll back a Deployment, and how does Kubernetes track revisions?
- What is a Service, and what are the types (ClusterIP, NodePort, LoadBalancer, ExternalName)?