首页 > 解决方案 > 使用带有位置 ipam 的 Macvlan CNI 插件创建的多个网络 - 跨节点通信未发生

问题描述

我在 Google Cloud Platform 之上建立了 openshift 容器平台。我使用 Multus 将多个网络连接到 pod。

我在 ipam 中使用 Macvlan CNI 和 whereabouts 而不是 static 以避免 IP 冲突。我部署了三个 pod,两个在同一个节点,一个在另一个节点。pod 被分配了 net1 接口,没有 IP 冲突和唯一的 mac 地址。

问题是如果 Pod 在同一个节点中,Pod 通信是通过 ping 发生的。但是跨节点,没有发生 pod 通信,显示目标主机不可达。如果我使用命令“ip route get net1ipaddress”检查路由,还有一件事,路由是存在的。

例如 ip route 得到 192.168.1.1

192.168.1.1 通过 10.0.32.1 开发 ens4 src 10.0.32.3 uid 0 缓存

但是没有发生交流。我该如何进一步检查?

非常感谢。

标签: kubernetesgoogle-cloud-platformopenshiftcnimacvlan

解决方案


为了访问外部网络,您的 GCP 网络必须允许来自一台计算机实例的使用 macvlan 的多个 mac 地址的所有流量。因此,您应该首先检查 GCP 上是否有混杂模式(没有过滤 MAC 地址)。AFAIK,公共云网络不允许这样做......所以你可以使用 ipvlan 而不是 macvlan 作为替代方案。


推荐阅读