kubernetes - 使用带有位置 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 缓存
但是没有发生交流。我该如何进一步检查?
非常感谢。
解决方案
为了访问外部网络,您的 GCP 网络必须允许来自一台计算机实例的使用 macvlan 的多个 mac 地址的所有流量。因此,您应该首先检查 GCP 上是否有混杂模式(没有过滤 MAC 地址)。AFAIK,公共云网络不允许这样做......所以你可以使用 ipvlan 而不是 macvlan 作为替代方案。
推荐阅读
- c++ - c++类成员函数指针在类中不能正常工作
- node.js - 如何将变量分配给节点js中的sqlite查询的输出
- python - 如何编写python代码批量将json转换为html?
- php - 如何将字符串拆分为字母和数字组件?
- c# - C#不要在包含相同文本的列表中添加重复项
- docker - Docker compose 镜像升级
- arrays - 将字符串传递给另一个函数后如何打印字符串数组
- swift - 检测 SwiftUI 工作表何时被刷掉
- android - 实施 admob 后我的项目崩溃
- python - 如何使用 pandas 导入多个 csv 文件并连接到一个 DataFrame