在 Debian 上安装 Kubernetes(K8s)报错,通常可以按“阶段 + 常见错误”来排查。下面我给你一个实用排错清单,基本能覆盖 90% 的情况。
# 系统信息
cat /etc/os-release
uname -a
# 容器运行时
docker version # 或
containerd --version
# kubeadm 状态
kubeadm version
把完整报错信息贴出来,定位最快。
报错示例
[ERROR Swap]: running with swap on is not supported
解决
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
报错示例
Port 6443 is in use
解决
sudo netstat -tulnp | grep 6443
报错示例
proc/sys/net/bridge/bridge-nf-call-iptables does not exist
解决
sudo modprobe br_netfilter
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
Debian 现在推荐 containerd
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd
⚠️ 如果用 Docker:
sudo systemctl enable docker
报错
detected cgroup driver as cgroupfs but expected systemd
解决 修改 containerd 或 docker 使用 systemd:
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
SystemdCgroup = true
报错
failed to pull image k8s.gcr.io/...
解决办法(国内)
kubeadm init \
--image-repository registry.aliyuncs.com/google_containers
update-alternatives --set iptables /usr/sbin/iptables-legacy
# 1. 关 swap
swapoff -a
# 2. 安装组件
apt update
apt install -y kubelet kubeadm kubectl containerd
# 3. 初始化
kubeadm init --image-repository registry.aliyuncs.com/google_containers
# 4. 配置 kubectl
mkdir -p $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config
你可以直接把报错完整粘贴(或截图文字),告诉我:
kubeadm init 还是 join 报错我可以一步一步帮你修 ✅