一次 K8s 集群内网故障的排查记录

一次 K8s 集群内网故障的排查记录

💡 原文中文,约13900字,阅读约需33分钟。
📝

内容提要

本文记录了Kubernetes集群中Pod间网络性能问题的排查过程,发现使用flannel VXLAN导致网络速度极慢。通过将flannel后端切换为host-gw,Pod间带宽从1-2 Mbit/s提升至10 Gbit/s,成功解决了下载超时的问题。文章总结了排查经验,并对比了K8s网络模式,强调了VXLAN在特定环境下的性能问题及host-gw的优势。

🎯

关键要点

  • Kubernetes 集群内 Pod 间网络性能极慢,使用 flannel VXLAN 导致带宽仅为 1-2 Mbit/s。
  • 通过将 flannel 后端切换为 host-gw,Pod 间带宽提升至 10 Gbit/s,成功解决下载超时问题。
  • 在排查过程中,发现 Node 间带宽正常,问题集中在 Pod 间的 CNI 或 overlay 隧道。
  • VXLAN 在特定虚拟化环境下表现不佳,可能导致性能问题。
  • host-gw 模式通过静态路由实现 Pod 间直接连接,性能更接近原生路由。
  • 排查经验包括使用 iperf3 进行基准测试,观察网络链路和错误统计,确保变更 CNI Backend 有计划。
  • 总结了几种常见 K8s 网络模式的优缺点,强调在特定环境下选择合适的网络模式的重要性。

延伸问答

Kubernetes集群中Pod间网络性能问题的主要原因是什么?

主要原因是使用flannel VXLAN导致网络速度极慢,带宽仅为1-2 Mbit/s。

如何解决Kubernetes集群中Pod间网络速度慢的问题?

通过将flannel的Backend从VXLAN切换为host-gw,Pod间带宽提升至10 Gbit/s。

在排查Kubernetes网络问题时,使用了哪些工具?

使用了iperf3进行基准测试,观察网络链路和错误统计。

VXLAN在特定环境下表现不佳的原因是什么?

VXLAN在虚拟化环境中可能导致性能问题,尤其是在高带宽和小MTU的情况下。

host-gw模式相比于VXLAN模式有什么优势?

host-gw模式通过静态路由实现Pod间直接连接,性能更接近原生路由,延迟低、带宽高。

在Kubernetes中,如何确认CNI Backend的变更?

可以通过kubectl命令查看ConfigMap,确认Backend类型是否已更改为host-gw。

➡️

继续阅读