The container runtime (Docker, containerd, or cri-o) is not running on your node, preventing kubelet from starting Pods.
Kubernetes relies on a container runtime to manage container lifecycle. Without a running container runtime, kubelet cannot create, start, or manage Pods. This error typically appears during node setup or when the runtime crashes.
List installed runtimes:
which docker
which containerd
which cri-o
# Check kubelet config to see which is expected
cat /etc/kubernetes/kubelet.conf | grep -i "container-runtime"Check and restart the runtime:
sudo systemctl status docker # or containerd/cri-o
sudo systemctl start docker
sudo systemctl enable dockerVerify the runtime socket is accessible:
# For Docker
sudo docker ps
# For containerd
sudo ctr containers list
# For cri-o
sudo podman psFor containerd (recommended for kubeadm):
sudo apt-get update
sudo apt-get install -y containerd.io
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerdAfter runtime is ready:
sudo systemctl restart kubelet
kubectl get nodes
# Wait for NotReady -> Ready transition
kubectl get nodes -wKubeadm officially supports containerd, cri-o, and Docker (deprecated in newer versions). Use containerd for new clusters. Ensure the kubelet socket path matches the runtime socket: /var/run/containerd/containerd.sock (containerd) or /var/run/crio/crio.sock (cri-o). Monitor runtime resource usage—if running out of disk or memory, the runtime may crash.
Failed to connect to server: connection refused (HTTP/2)
How to fix "HTTP/2 connection refused" error in Kubernetes
No subnets found for EKS cluster
How to fix "eks subnet not found" in Kubernetes
missing request for cpu in container
How to fix "missing request for cpu in container" in Kubernetes HPA
unable to compute replica count
How to fix "unable to compute replica count" in Kubernetes HPA
error: context not found
How to fix "error: context not found" in Kubernetes