Scenario
A production Kubernetes worker node running Linux becomes unreachable from the cluster, causing pods to lose connectivity. The node status shows NotReady and application monitoring alerts fire.
Symptoms
kubectl get nodesshowsNotReadystatus for the nodekubectl describe node <node>reportsKubeletNotReadycondition- Pods on that node stuck in
ContainerCreatingorCrashLoopBackOff - Pod IPs unreachable from other nodes (
ping/curltimeout) - kubelet logs contain repeated network errors like
network plugin is not readyorfailed to get pod status
Diagnosis Steps
-
Check kubelet status
bash systemctl status kubelet journalctl -u kubelet -n 100 --no-pagerLook for errors such ascni config uninitializedorno such file or directory. -
Check container runtime (containerd/cri-o)
bash crictl info crictl podsEnsure runtime is healthy and CNI plugins are registered. -
Inspect CNI configuration
bash cat /etc/cni/net.d/*.conf ls -la /opt/cni/bin/Verify config file syntax and presence of plugin binaries. -
Examine network interfaces and routing
bash ip a ip route bridge fdb showConfirm bridgecni0exists and physical interface is up. -
Check iptables rules
bash iptables -L -n -t nat iptables -L -n -t filterLook for unexpected DROP rules or stale entries. -
System logs
bash dmesg -T | tail -20 grep -i error /var/log/syslog | tail -30Check for NIC driver errors, MTU mismatches, or kernel warnings. -
Basic connectivity test
bash ping <gateway> curl -I http://<pod-ip>:<port>If gateway fails, issue is likely physical or L2; if gateway works but pod IP fails, CNI layer is the culprit.
Risk Controls
- Never restart kubelet or network services during peak traffic unless the node is already failing. Use
kubectl cordonanddrainbeforehand. - Backup all config files before modifying
/etc/cni/or/etc/kubernetes/. - Test changes on a non‑production node first whenever possible.
- Avoid mass node operations — troubleshoot one node at a time to limit blast radius.
Rollback Plan
- Restore CNI configuration from backup and restart kubelet:
bash cp /etc/cni/net.d/10-flannel.conflist.bak /etc/cni/net.d/10-flannel.conflist systemctl restart kubelet - If kubelet restart causes further issues, drain and reset the node:
bash systemctl stop kubelet crictl ps -aq | xargs crictl rm systemctl start kubelet - Revert any sysctl changes:
bash sysctl -p /etc/sysctl.conf.bak
Verification
- Node status becomes
Ready:bash kubectl get nodes - All pods transition to
Running:bash kubectl get pods -o wide --all-namespaces | grep <node> - Pod-to-pod connectivity works:
bash kubectl exec -it <pod> -- curl http://<other-pod-ip>:<port> - Application health checks pass (e.g., HTTP 200).
When to Submit an OpsGlobal Ticket
Submit immediately if: - Basic diagnostics fail to identify the root cause after 15 minutes. - Kernel panics, hardware errors (NIC/PCIe), or driver issues are detected. - Node is completely unreachable via SSH (requires out-of-band assistance). - You need help with CNI upgrade or kernel parameter tuning.
OpsGlobal provides 24/7 remote SRE support – upload logs and get expert help fast.
Use cases
Useful for teams handling DevOps issues and needing a clear troubleshooting and delivery workflow.
Problem background
A deep practical guide to diagnosing and resolving network failures on Linux Kubernetes worker nodes in production, including symptoms, commands, risk controls, rollback, 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.