How to fix The kubelet is not running in Kubernetes
The kubelet service on a node is not running, preventing the node from being part of the cluster.
Quick fix
Fixes The kubelet is not running
sudo systemctl status kubelet
sudo journalctl -u kubelet -n 50 --no-pager- Check kubelet service status
- Verify container runtime is running
- Start kubelet service
- Check kubelet logs for errors
sudo systemctl status kubeletsudo journalctl -u kubelet -n 50 --no-pagerThe kubelet is not running
What this error means
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.
Typical symptoms
- Node shows NotReady status in kubectl get nodes
- Cannot join node to cluster (kubeadm join fails)
- Pods on the node cannot start
- Node appears disconnected from cluster
- kubelet service is stopped or crashed
- Journal shows kubelet process exit
Common causes
- kubelet service was not started or enabled
- kubelet crashed due to out-of-memory or other errors
- Container runtime (Docker, containerd) is not running
- Network connectivity issue preventing node registration
- Insufficient disk space preventing kubelet startup
- Configuration or certificate issues
How to fix "The kubelet is not running"
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.
Advanced notes
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.
Frequently asked questions
- What does "The kubelet is not running" mean?
- 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.
- How do I fix "The kubelet is not running"?
- The kubelet service on a node is not running, preventing the node from being part of the cluster.
- What causes "The kubelet is not running"?
- kubelet service was not started or enabled kubelet crashed due to out-of-memory or other errors Container runtime (Docker, containerd) is not running
- Is the "The kubelet is not running" error serious?
- Yes. This is a critical-severity error that usually blocks work until it is fixed, but the steps above resolve it.
Official resources & further reading
- ๐Kubernetes Official Documentation
- ๐Kubernetes: Kubelet Reference(Official Docs)
- ๐Kubernetes: Kubeadm Kubelet Troubleshooting(Official Docs)
- ๐GitHub: Kubelet startup issues(GitHub)