问一个奇怪的 K8S 集群网络问题

2020-07-05 11:50:16 +08:00
 zhoudaiyu
先说一下一下 K8S 用的是 1.13 版本的,网络插件用的 Calico 3.1.3,连接模式是 IPIP 模式( IP 隧道模式),禁用 VxLAN 。
集群的拓扑如图所示,其实原来没有物理机 A 这个机器,最近加上的,但是有很多和物理机 B 、C 的 CIDR 相同的机器,如 10.237.79.4x 、10.237.79.5x 等,无论是任意物理机上 POD (也就是图中的虚拟机)相互 PING,还是 POD 和物理机之间相互 PING 都是没有问题的,举个例子:虚拟机 B1 -> 虚拟机 C1,虚拟机 C1 -> 虚拟机 B1 相互 PING 都是通的。但对于物理机 A,这台物理网卡只能 PING 通其他物理机的物理网卡,但没法 PING 通其他机器上的 POD,反过来从 POD 中访问物理机 A 的物理网卡是没有问题的。举个例子:物理网卡 A -> 虚拟机 B1 不通,但虚拟机 B1 -> 物理网卡 A 通。还有一点,从物理网卡 A 上 PING 虚拟机 B1 时抓包发现:物理网卡 B 没有收到来自物理网卡 A 或虚拟网卡 A 的包。现在我怀疑未知网络拓扑那块可能过了某个路由器,它不支持或者没有配置 IP 隧道。大家怎么看呢?


3419 次点击
所在节点    Kubernetes
25 条回复
zhoudaiyu
2020-07-05 14:51:17 +08:00
@twl007 #20 ACL 这个我们看不到,因为部署在母公司的私有云上,但是我觉得有可能是这个,十分感谢
twl007
2020-07-05 15:15:00 +08:00
@zhoudaiyu 验证这个问题很简单 其实这个跟 k8s 也没啥关系 你就手动在这两个机器上创建个 ipip 测试一下就知道了 如果你手动创建的能工作 那就不是这个问题 再去找别的去
ujued
2020-07-05 16:46:16 +08:00
@zhoudaiyu #17 B1 通过物理机 NAT 访问到 A 的吧?

B1 访问 A1 应该也是不通的,同样是没有路由
zhoudaiyu
2020-07-05 16:56:37 +08:00
B1 到 A 没问题,B1 到 A1 不可以,B 和 C 直接无论虚拟机还是服务器的物理网卡都可以相互 ping 通的
zhoudaiyu
2020-07-05 16:57:25 +08:00
@twl007 #22 谢谢,我再排查一下是不是 iptables 在搞鬼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/687268

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX