Interview Kubernetes, Docker, Helm & Podman

How do you safely drain and cordon a node for maintenance?

Kubernetes, Docker, Helm & Podman · Intermediate level

Answer

To maintain a node safely, I cordon it first, drain it while respecting DaemonSets and PDBs, perform the maintenance, verify node health, and then uncordon it. I watch replacement Pods and disruption budgets during the process.

Technical explanation

Use --ignore-daemonsets for drain because DaemonSet Pods are managed differently.

Check PDB violations before maintenance so upgrades do not stall midway.

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: cordon and drain a node while watching Pods reschedule.

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.

Preparing for an interview?

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

← All Kubernetes, Docker, Helm & Podman questions