The kubelet service on a node is not running, preventing the node from being part of the cluster.
Fixes The kubelet is not running
sudo systemctl status kubelet
sudo journalctl -u kubelet -n 50 --no-pagersudo systemctl status kubeletsudo journalctl -u kubelet -n 50 --no-pagerThe kubelet is not running
Kubelet is the node agent that registers the node with the cluster and manages Pod lifecycle. If kubelet stops, the node becomes NotReady and cannot run workloads. This is often discovered during kubeadm join or when a node loses connectivity.
On the affected node:
sudo systemctl status kubelet
sudo journalctl -u kubelet -n 50 --no-pagerLook for error messages explaining why it stopped.
Check if Docker or containerd is running:
sudo systemctl status docker # or containerd
# Restart if needed
sudo systemctl restart dockerEnable and start kubelet:
sudo systemctl start kubelet
sudo systemctl enable kubelet
# Verify it started
sudo systemctl status kubeletReview detailed logs:
sudo journalctl -u kubelet -f # Follow logsCommon errors:
- "connect: no such file or directory" - container runtime socket issue
- "operation not permitted" - capability/permission issue
- "disk pressure" - not enough space
Wait for node to become Ready:
kubectl get nodes -wOnce Ready, the node can accept workloads.
Always enable kubelet for auto-start on reboot: sudo systemctl enable kubelet. For kubeadm clusters, kubelet reads config from /etc/kubernetes/kubelet.conf. Monitor disk space as kubelet needs space for image cache and logs. Use kubelet --help to see all configuration options. Check container runtime socket path in kubelet config matches your runtime.