我正在尝试配置 Kubernetes pod 以发送和接收 UDP 多播消息。我有两个集群,每个集群都在单独的 Proxmox VM 上运行。每个集群都使用 Flannel 作为 Multus 的基本 CNI。

我尝试了以下方法:

  1. 我为我的 pod 创建了以下网络附件定义和以下注释
    第二个集群上的 pod 具有相同的网络附件定义和注释(不同的 IP 和 mac)。使用此配置,我可以从一个 pod ping 到另一个 pod,但使用 IPERF 发送多播数据失败。
  2. 我尝试使用以下网络附件定义和此注释进行相同的操作,结果相同:IPERF 失败
  3. 我删除了 Multus 注释并将 hostNetwork 设置为 true。这有效,IPERF 能够在 pod 之间发送多播数据。但是,设置的另一部分失败了。我在集群外部的 Docker 容器中运行另一个应用程序(这是一个模拟器,不会成为最终部署的一部分,但需要用于测试)。此应用程序通过 NodePort 服务将数据发送到所有 pod。如果我将 hostNetwork 设置为 true,模拟器将无法再访问关联的 pod。
  4. 的答案中提到的配置,但是这样我甚至无法从一个 pod ping 到另一个 pod。

以下是我使用 IPERF 的方法。在一个 pod 上,我运行并获得此输出。在另一个 pod 上,我运行并获得此输出

我注意到的一件事是,客户端的本地 IP 是 10.42.#.# 地址,这是集群内部 IP。我不知道如何更改它。

0