Skip to main content
In this lesson we cover practical steps to troubleshoot worker node failures in a Kubernetes cluster. You will learn how to identify node status with kubectl, interpret node conditions, inspect the node locally (if reachable), examine kubelet logs and certificates, and follow a concise checklist to restore node health.
A presentation slide titled "Worker Node Failure" with a dark blue curved panel on the right containing a gear icon with an exclamation mark. The bottom left shows "© Copyright KodeKloud."

1. Check cluster node status

Start by checking which nodes are Ready, NotReady, or have other conditions:
Example output:
If a node is NotReady (or has other problems), inspect detailed node information:
Example excerpt:

2. Understand node conditions

Node conditions indicate node health. Below is a quick reference for common condition types and recommended actions. If the kubelet stops reporting, conditions can switch to Unknown and the Reason may show NodeStatusUnknown. Check LastHeartbeatTime to see when the node stopped reporting.
If node conditions are Unknown, first verify the node itself (network, power, or hypervisor state). Use the LastHeartbeatTime to determine when it stopped reporting, then try to reach the node via SSH or your cloud provider console.

3. Troubleshoot on the node (when reachable)

If you can SSH into the node (or access it via cloud console), follow these steps in order:
  1. Verify basic reachability and host health
    • Ping the node, check cloud provider instance status, or SSH into it.
    • If the node is powered off or unreachable at hypervisor level, bring it online.
  2. Inspect system resource usage
    • Check CPU, memory and load with top or htop.
    • Inspect disk usage with df -h and inode usage with df -i.
Example top output:
  1. Check kubelet service and inspect logs
    • Verify kubelet is running:
Example:
  • Inspect recent kubelet logs for authentication, certificate, network, or filesystem errors:
  1. Validate kubelet certificates and credentials
    • If kubelet cannot authenticate to the API server, certificate issues (expired, wrong subject/SAN, wrong CA) are common culprits.
    • Check the node certificate:
Sample certificate excerpt:
If the certificate is expired, or the Subject / SANs do not match the node identity, kubelet registration and authentication will fail and the control plane will mark the node accordingly.

4. Quick troubleshooting checklist

  • Run kubectl get nodes to spot non-Ready nodes.
  • Use kubectl describe node <node> to examine Conditions and LastHeartbeatTime.
  • If Conditions are Unknown, verify node reachability via SSH or cloud console.
  • On the node: check top, df -h, free -m for resource exhaustion.
  • Verify kubelet status: systemctl status kubelet and journalctl -u kubelet.
  • Confirm kubelet certificates are valid: openssl x509 -in /var/lib/kubelet/<node>.crt -text -noout.
  • If kubelet config or certs are broken, re-provision kubelet credentials or rotate certificates as needed.

Watch Video

Practice Lab