使用 Macvlan CNI 插件创建的多个网络与下落 ipam - 跨节点通信不发生

问题描述

我在 Google Cloud Platform 之上提出了 openshift 容器平台。我使用了 Multus 来让多个网络连接到 Pod。

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

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

例如, ip 路由得到 192.168.1.1

192.168.1.1 通过 10.0.32.1 dev ens4 src 10.0.32.3 uid 0 缓存

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

非常感谢。

解决方法

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