During kubeadm init, the control plane failed to initialize within the timeout period, usually because critical system Pods are not starting.
Kubeadm init creates core Kubernetes system components (API server, scheduler, controller-manager) and waits for them to become healthy. If these Pods don't start within a few minutes (default timeout), kubeadm exits with a timeout error. This indicates issues with container runtime, images, or node resources.
Before kubeadm init, verify runtime:
sudo systemctl status docker # or containerd
sudo docker ps # Test connectivityIf not running, start it:
sudo systemctl start dockerCheck node resources:
df -h # Check disk space, need at least 10GB free
free -m # Check memory, need at least 2GBIf low, clean up before retrying kubeadm init.
Use the --timeout flag:
kubeadm init --timeout 5mDefault is often 4-5 minutes. Increase for slow networks.
Download images before init to speed up:
kubeadm config images pull
# Then run init
kubeadm initReview kubelet logs:
sudo journalctl -u kubelet -n 100 --no-pager
# Or check control plane pod logs
kubectl logs -n kube-system kube-apiserver-NODE_NAMEFor air-gapped environments, pre-load container images. Use containerd with image caching for faster startup. Monitor system resources during init with: watch -n 1 "free -m && df -h". For development/testing, consider increasing --apiserver-advertise-address explicitly. Check network connectivity to image registries using: curl -I https://registry.k8s.io
Failed to connect to server: connection refused (HTTP/2)
How to fix "HTTP/2 connection refused" error in Kubernetes
missing request for cpu in container
How to fix "missing request for cpu in container" in Kubernetes HPA
error: invalid configuration
How to fix "error: invalid configuration" in Kubernetes
etcdserver: cluster ID mismatch
How to fix "etcdserver: cluster ID mismatch" in Kubernetes
running with swap on is not supported
How to fix "running with swap on is not supported" in kubeadm