Ubuntu 上 Kubernetes(k8s)启动失败的原因很多,最常见的是系统环境或组件配置问题。下面我按「高频原因 → 排查方法 → 解决办法」给你一个实用清单,你可以逐条对照。
Kubernetes 强制要求关闭 swap
现象
kubeadm init 报错检查
swapon --show
解决
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
检查
systemctl status kubelet
journalctl -xeu kubelet
常见错误
failed to run kubeletcgroup driver 不一致Ubuntu 20.04+ 默认用 systemd
查看
cat /etc/containerd/config.toml | grep SystemdCgroup
应确保
SystemdCgroup = true
修改后:
sudo systemctl restart containerd
K8s 需要以下端口:
临时关闭测试
sudo ufw disable
不能有大写、不能 localhost 冲突
hostnamectl set-hostname master
/etc/hosts 示例:
127.0.0.1 localhost
192.168.1.10 master
现象
timedatectl status
sudo apt install chrony -y
sudo systemctl restart chrony
[ERROR Port-6443]: Port 6443 is in use
[ERROR FileAvailable--etc-kubernetes-manifests]: file exists
[ERROR Swap]: swap is enabled
重置再试
sudo kubeadm reset -f
sudo rm -rf /etc/kubernetes /var/lib/etcd
kubectl get nodes
如果是 NotReady:
kubectl describe node <node>
通常是:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
swapon --show
systemctl status kubelet
systemctl status containerd
kubectl get nodes
journalctl -xeu kubelet | tail -n 50
请把下面信息发我之一即可:
journalctl -xeu kubelet 报错kubeadm init 的完整输出kubectl get nodes + describe node我可以直接告诉你哪一步错了、怎么改。