温馨提示×

debian部署k8s失败咋排查

小樊
44
2026-10-02 08:36:49
栏目: 智能运维

在 Debian 上部署 Kubernetes(kubeadm 方式最常见)失败,排查一般遵循**“从下往上”的思路:系统环境 → 容器运行时 → kubeadm 初始化 → 网络/组件。下面给你一套实用排查清单**。


一、先看部署方式

常见失败场景:

  • kubeadm init 失败
  • 节点 NotReady
  • Pod 一直 Pending / CrashLoopBackOff

先确认你用的是:

kubeadm init

还是其他(如二进制、kubekey、Rancher 等)?下面以 kubeadm + Debian 为主。


二、基础系统检查(非常关键)

1. 系统版本

cat /etc/debian_version
uname -a

✅ 推荐:Debian 11 / 12
❌ 老版本(如 Debian 9)容易踩坑

2. 关闭 swap(必须)

free -h
sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab

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

systemctl stop firewalld
# 或 iptables 放行 6443、10250 等

4. 时间同步

timedatectl

不一致会导致证书问题:

apt install -y chrony
systemctl enable --now chrony

三、容器运行时排查(最容易出问题)

1. 确认运行时

which containerd
which docker

Debian 12 默认用 containerd

2. containerd 状态

systemctl status containerd
journalctl -u containerd -n 50

3. 配置 cgroup driver(重点)

kubeadm 要求一致:

containerd config default > /etc/containerd/config.toml

确认:

SystemdCgroup = true

然后:

systemctl restart containerd

四、kubeadm init 失败排查

1. 直接看错误

kubeadm init --v=5

2. 常见失败点

❌ 端口被占用

ss -lntp | grep 6443

❌ 证书问题

ls /etc/kubernetes/pki

重置重来:

kubeadm reset -f

❌ 镜像拉不到(国内常见)

kubeadm config images pull

失败说明:

  • 网络问题
  • 需要配置镜像源

五、节点 NotReady 排查

1. 查看节点

kubectl get nodes

2. 查看 kubelet

systemctl status kubelet
journalctl -u kubelet -n 100

3. 网络插件没装(90%原因)

kubectl get pods -n kube-system

如果没有 calico / flannel:

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

六、Pod 异常排查

kubectl describe pod <pod>
kubectl logs <pod>

常见:

  • 镜像拉取失败
  • Resource 不够
  • 网络不通

七、快速自检脚本(建议保存)

#!/bin/bash
swapoff -a
systemctl status containerd
systemctl status kubelet
kubectl get nodes
kubectl get pods -A

八、如果你愿意,我可以直接帮你定位

你可以贴:

  1. kubeadm init 的报错全文
  2. journalctl -u kubelet -n 50
  3. kubectl get nodes / pods -A
  4. Debian 版本 + 是否虚拟机

我可以按你的具体错误一步步帮你修。

0 踩