温馨提示×

怎样排查debian k8s错

小樊
39
2026-10-19 21:20:56
栏目: 智能运维

排查 Debian 上 Kubernetes(k8s)故障,可以按「从节点到集群、从底层到上层」的思路一步步来。下面给你一套实用排查清单。


一、先确认基础环境(最常见问题)

1. 系统 & 内核

uname -a
cat /etc/os-release

✅ 要求:

  • Debian 稳定版(11/12)
  • 内核 ≥ 4.15(建议 5.x)

2. 时间同步(非常重要)

timedatectl

如果时间不同步:

apt install -y chrony
systemctl enable --now chrony

3. 防火墙 / iptables

iptables -L -n
ufw status

k8s 端口示例:

  • API Server:6443
  • NodePort:30000–32767
  • Flannel/Calico:UDP 8472 / TCP 179

二、检查 kubelet(节点核心)

1. kubelet 状态

systemctl status kubelet
journalctl -u kubelet -f

2. 常见错误

  • failed to find cgroup
  • container runtime not running
  • node not ready

3. 容器运行时

containerd --version
crictl info

Debian 常用:

  • containerd(推荐)
  • docker(旧版)

三、节点状态排查

kubectl get nodes
kubectl describe node <node-name>

重点看:

  • Conditions
  • Events
  • Allocatable / Capacity

四、Pod 级别排查(最高频)

kubectl get pods -A
kubectl describe pod <pod> -n <ns>
kubectl logs <pod> -n <ns>
kubectl logs <pod> -n <ns> -c <container>

常见状态 & 原因

状态 可能原因
Pending 资源不足 / 调度失败
CrashLoopBackOff 程序启动失败
ImagePullBackOff 镜像拉不到
Evicted 节点资源耗尽

五、网络问题(Debian 上特别常见)

1. CNI 插件

kubectl get pods -n kube-system
  • Calico
  • Flannel
  • Cilium

2. 网络连通性测试

kubectl exec -it <pod> -- ping <service>
kubectl exec -it <pod> -- nslookup <service>

六、集群级组件

kubectl get cs
kubectl get pods -n kube-system

重点组件:

  • kube-apiserver
  • kube-controller-manager
  • kube-scheduler
  • etcd

七、etcd 检查(严重故障)

ETCDCTL_API=3 etcdctl \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
endpoint health

八、常见 Debian 专属坑

✅ swap 未关闭

swapoff -a
sed -i '/swap/d' /etc/fstab

✅ cgroup driver 不一致 containerd:

SystemdCgroup = true

✅ 内核参数

sysctl net.bridge.bridge-nf-call-iptables=1

九、快速定位思路总结

  1. kubectl get nodes
  2. kubectl describe node
  3. journalctl -u kubelet
  4. kubectl describe pod
  5. kubectl logs
  6. 网络 / CNI
  7. etcd / apiserver

如果你愿意,可以告诉我:

  • 具体报错信息
  • 是 master 还是 worker 节点
  • 使用的 CNI / 安装方式(kubeadm?二进制?)

我可以直接帮你精确定位问题。

0 踩