Cilium 1.12.1部分节点跨节点Pod端口通信异常排查求助
排查方向建议
网络MTU与链路一致性排查
- 检查异常节点(node5-node8)与正常节点的网卡MTU配置:执行
ip link show对比,千兆网卡若MTU为1500、万兆网卡若配置为9000,跨节点TCP大包会因MTU不匹配被丢弃(ping小包不受影响)。 - 验证Pod的MTU是否与节点一致:
kubectl exec -it <异常节点Pod名称> -- ip link show,同时查看Cilium全局MTU配置:kubectl get cm cilium-config -n kube-system -o yaml,确认mtu字段在所有节点统一。
Cilium eBPF与内核适配检查
- 查看异常节点的内核日志,排查eBPF程序加载或TC规则异常:
dmesg | grep -i cilium或dmesg | grep -i bpf,重点关注是否有加载失败、hook注册错误的日志。 - 对比正常节点与异常节点的eBPF程序状态:执行
cilium bpf list,检查程序数量、挂载点是否一致。
Cilium端点与健康状态深度排查
- 查看异常节点上的Pod端点状态:
cilium endpoint list,确认是否存在ready状态异常、带有错误标记的端点。 - 提取cilium-health的详细日志:
kubectl logs -n kube-system <node5上的cilium-agent Pod名> -c cilium-health,定位HTTP连通性超时的具体原因(如SYN无响应、数据包被拦截)。 - 检查是否存在误配置的网络策略:
kubectl get networkpolicies --all-namespaces,确认没有规则限制千兆节点Pod的TCP流量。
kubeProxyReplacement=strict模式下的转发逻辑验证
- 查看异常节点的Service同步状态:
cilium service list,对比正常节点,确认Service后端Pod是否正确同步。 - 检查连接跟踪表:
cilium bpf ct list global,查看异常Pod发起的SYN包是否有对应的ACK记录,判断是数据包丢失还是未完成三次握手。
节点硬件与驱动排查
- 对比异常节点与正常节点的网卡驱动/固件版本:
ethtool -i <千兆网卡名称>,确认驱动版本一致,无兼容性差异。 - 测试节点层面的连通性:在node5上直接curl master01的nginx Pod IP:端口,若节点本身也超时,排查物理网络(交换机端口ACL、VLAN配置、链路质量);若节点能通,则问题聚焦在Cilium的Pod网络栈。
版本特定问题排查
- 查阅Cilium 1.12.x的Release Notes,确认是否存在与千兆网卡、strict模式相关的已知bug,比如TC规则下发异常、eBPF程序兼容问题,可考虑升级到1.12系列的后续补丁版本验证。
内容的提问来源于stack exchange,提问作者Archean
相关产品推荐
相关产品推荐

