温馨提示×

centos k8s为何通信异常

小樊
41
2026-09-24 15:37:27
栏目: 智能运维

在 CentOS 上部署的 Kubernetes(k8s)出现通信异常,通常不是单一原因,而是网络模型中的某一层出了问题。下面按常见原因 → 排查思路 → 解决建议给你一个系统性的说明。


一、最常见原因分类

1️⃣ 防火墙 / 安全组问题(CentOS 特有高发)

CentOS 默认启用:

  • firewalld
  • iptables
  • SELinux

常见问题:

  • 节点间端口被拦截(如 6443、2379、10250)
  • Pod 跨节点不通
  • Service 无法访问

排查:

systemctl status firewalld
getenforce
iptables -L -n | head

建议:

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
# 修改 /etc/selinux/config 为 disabled

2️⃣ 网络插件(CNI)异常(最常见)

常见 CNI:

  • Flannel
  • Calico
  • Cilium

异常表现:

  • Pod IP 分配正常但跨节点不通
  • coredns 一直 CrashLoopBackOff
  • Service ClusterIP 不通

排查:

kubectl get pods -n kube-system
kubectl logs -n kube-system <cni-pod>
ip route
ip a

注意:

  • Flannel 依赖 vxlan / host-gw
  • Calico 依赖 BGP

3️⃣ 内核参数 / 网桥转发未开启(CentOS 常见)

典型错误:

  • Pod 能 ping 通自己,但 ping 不通其他节点
  • Service 访问超时

检查:

sysctl net.bridge.bridge-nf-call-iptables
sysctl net.ipv4.ip_forward

修复:

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

4️⃣ kube-proxy 工作异常

表现:

  • ClusterIP 不通
  • NodePort 无法访问

检查:

kubectl get pods -n kube-system | grep kube-proxy
kubectl logs -n kube-system kube-proxy-xxx

模式问题:

  • iptables 模式(默认)
  • ipvs 模式(需加载内核模块)
lsmod | grep ip_vs

5️⃣ 时间不同步(隐蔽但致命)

表现:

  • 节点频繁 NotReady
  • TLS 握手失败
timedatectl
chronyc sources

6️⃣ 容器运行时异常(docker / containerd)

  • docker 与 kubelet 版本不兼容
  • cgroup driver 不一致
docker info | grep cgroup
kubelet --version

推荐:

  • Containerd + systemd cgroup

二、快速定位思路(推荐顺序)

  1. 节点是否 Ready
kubectl get nodes
  1. Pod 状态
kubectl get pods -A
  1. Pod 内网络测试
kubectl exec -it pod -- ping <其他PodIP>
  1. Service 测试
kubectl get svc
curl ClusterIP:port

三、典型故障速查表

现象 可能原因
跨节点 Pod 不通 CNI / 防火墙
Service 不通 kube-proxy / iptables
DNS 解析失败 coredns / 网络插件
节点 NotReady kubelet / 时间 / 资源
偶发超时 MTU / 内核参数

四、如果你愿意,我可以进一步帮你精准定位

你可以补充以下信息之一:

  • ✅ k8s 版本
  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 网络插件(Flannel / Calico)
  • ✅ 具体异常现象(节点不通 / Pod不通 / Service不通)
  • ✅ 报错日志(kubelet / cni)

我可以直接帮你判断是哪一层网络问题,并给出对应修复命令。

0 踩