Scenario
A worker node goes down due to hardware failure, causing its Pods to be evicted and services to degrade.
Symptoms
- Elevated error rates and increased latency
- Some Pods stuck in Pending state (no available nodes)
- Monitoring alerts (e.g., Node Down, Pod CrashLoopBackOff)
Diagnosis
- Check node status:
kubectl get nodes -o wideto find NotReady nodes. - Describe the node:
kubectl describe node <node>to see conditions (Ready=False) and events. - Identify affected Pods:
kubectl get pods --all-namespaces --field-selector spec.nodeName=<node>. - Check cluster events:
kubectl get events --all-namespaces --sort-by='.lastTimestamp'for eviction records. - Use metrics-server or Prometheus to confirm resource pressure.
Commands
# Cordon the node to prevent new schedules
kubectl cordon <node>
# Drain the node (safely migrate Pods)
kubectl drain <node> --ignore-daemonsets --delete-emptydir-data
# If node is completely dead, force-delete Pods
kubectl delete pod <pod> --grace-period=0 --force
# Add a new node or bring the old one back
kubectl uncordon <node>
Risk Controls
- Confirm PodDisruptionBudget (PDB) is configured before draining to avoid total service outage.
- Use
--ignore-daemonsetsto skip DaemonSet pods. - Be cautious with
--delete-emptydir-dataif Pods use emptyDir volumes. - Avoid draining multiple nodes simultaneously.
Rollback
- If drain fails (e.g., PDB prevents it), cancel with
kubectl uncordon <node>and reassess. - For failures caused by updates, use
kubectl rollout undo deployment/<name>. - Recover data from PersistentVolume backups or snapshots if needed.
Verification
- After recovery,
kubectl get nodesconfirms Ready. kubectl get pods --all-namespaces -o wideshows Pods running on correct nodes.- Test service endpoints for normal functionality.
- Monitor metrics (error rate, latency) return to baseline.
When to Submit an OpsGlobal Ticket
- Incident involves storage, networking, or persistent data.
- Advanced debugging is required (e.g., kernel, CSI plugin issues).
- Your team lacks 24x7 coverage or adequate SLA.
- Root cause is unclear and requires expert analysis.
Use cases
Useful for teams handling Kubernetes issues and needing a clear troubleshooting and delivery workflow.
Problem background
Learn how to systematically respond to Kubernetes cluster incidents—from detecting node failures to restoring services and when to escalate to OpsGlobal.
Troubleshooting steps
Confirm impact and recent changes, collect logs, configuration and metrics, then apply fixes from low to high risk.
Command examples
Replace sample resource names with real values and store passwords, tokens and keys in environment variables.
Risks
Before production changes, confirm backups, access boundaries, change windows and rollback paths.
Rollback plan
Keep original configuration and release versions; roll back config, images or database changes if metrics degrade.
Deliverables
Root-cause notes, key commands, remediation steps, verification results and follow-up recommendations.
Need help with a similar technical issue?
If your servers, Kubernetes, Docker, CI/CD, databases or monitoring systems have similar issues, submit logs and config files for remote diagnosis.