在 Debian 上部署 Kubernetes(K8s)出错时,不要慌,按**“分层排查 + 看日志”的思路来处理。下面给你一套实用排错流程**,覆盖最常见的问题场景。
cat /etc/debian_version
uname -a
推荐:
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
ufw disable
# 或
ufw allow 6443,10250,2379:2380,30000:32767/tcp
modprobe br_netfilter
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
EOF
sysctl --system
systemctl status containerd
journalctl -u containerd -f
常见问题:
kubeadm init --v=5
[ERROR Swap]: running with swap on is not supported
✅ 解决:关闭 swap(见上)
Port 6443 is in use
✅ 解决:
netstat -tunlp | grep 6443
containerd 默认 systemd,kubelet 可能 cgroupfs
✅ 修复:
cat > /etc/containerd/config.toml <<EOF
[plugins."io.containerd.grpc.v1.cri"]
systemd_cgroup = true
EOF
systemctl restart containerd
systemctl status kubelet
journalctl -u kubelet -xe
failed to run Kubelet: misconfigurationcontainer runtime is not running✅ 检查:
cat /var/lib/kubelet/config.yaml
kubectl get nodes
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers
kubeadm init \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16
# 重置重来
kubeadm reset -f
# 查看所有 pod 状态
kubectl get pods -A
# 看某个组件日志
kubectl logs -n kube-system <pod-name>
请把以下信息贴出来(越多越好):
如果你愿意,可以直接把报错日志贴出来,我可以一步一步帮你修到能 kubectl get nodes 全 Ready ✅