温馨提示×

Debian K8s部署出错怎么办

小樊
49
2026-09-17 11:18:50
栏目: 智能运维

在 Debian 上部署 Kubernetes(K8s)出错时,不要慌,按**“分层排查 + 看日志”的思路来处理。下面给你一套实用排错流程**,覆盖最常见的问题场景。


一、先确认基础环境(90%的问题在这里)

1️⃣ 系统版本 & 内核

cat /etc/debian_version
uname -a

推荐:

  • Debian 11 / 12
  • 内核 ≥ 5.x

2️⃣ 关闭 swap(必须)

swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab

3️⃣ 关闭防火墙 / 或放通端口

ufw disable
# 或
ufw allow 6443,10250,2379:2380,30000:32767/tcp

4️⃣ 开启内核模块 & 网络参数

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

二、容器运行时问题(containerd / docker)

✅ 推荐:containerd

systemctl status containerd
journalctl -u containerd -f

常见问题:

  • containerd 没启动
  • cgroup 驱动不一致(下面讲)

三、kubeadm 初始化失败

查看详细错误

kubeadm init --v=5

常见错误 & 解决

❌ swap 未关闭

[ERROR Swap]: running with swap on is not supported

✅ 解决:关闭 swap(见上)

❌ 端口被占用

Port 6443 is in use

✅ 解决:

netstat -tunlp | grep 6443

❌ cgroup 驱动不一致

containerd 默认 systemd,kubelet 可能 cgroupfs

✅ 修复:

cat > /etc/containerd/config.toml <<EOF
[plugins."io.containerd.grpc.v1.cri"]
  systemd_cgroup = true
EOF
systemctl restart containerd

四、kubelet 起不来(非常常见)

systemctl status kubelet
journalctl -u kubelet -xe

典型错误

  • failed to run Kubelet: misconfiguration
  • container runtime is not running

✅ 检查:

cat /var/lib/kubelet/config.yaml

五、节点 NotReady

kubectl get nodes

原因

  • 网络插件没装(Calico / Flannel)

解决(Flannel 示例)

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

六、国内环境特别注意事项(很重要)

1️⃣ 镜像拉不到

kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers

2️⃣ init 时指定

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>

八、你可以这样给我信息,我帮你精确定位

请把以下信息贴出来(越多越好):

  1. Debian 版本
  2. kubeadm / kubelet 版本
  3. 报错截图或完整日志
  4. 用的什么网络插件
  5. 物理机 / 虚拟机 / 云服务器

如果你愿意,可以直接把报错日志贴出来,我可以一步一步帮你修到能 kubectl get nodes 全 Ready ✅

0