UDP/TCP 在托管 Kubernetes 服务(特别是 AWS-EKS)中广播

UDP/TCP Broadcast in Managed Kubernetes Services (specifically AWS-EKS)

我们有一个应用程序使用 UDP 广播消息在同一子网中形成所有实例的“集群”运行。

我们可以通过使用 hostNetwork:true for pods 在我们的(非常标准的)本地 K8s 安装中成功 运行 这个应用程序。这是可行的,因为所有 K8s 节点都在同一个子网中,并且可以进行广播。 (小提示:K8s 设置使用 flannel 网络插件)

现在我们要将此应用程序移动到托管的 K8s 服务@AWS。但是我们最初的尝试失败了。 2 个守护进程 运行ning 在 2 个不同的 pods 中没有看到对方。我们认为这很可能是由于驻留在不同子网上的 AWS K8s 服务自动生成的 EC2 工作节点实例所致。然后我们在同一个子网(和同一个可用区)中创建了 2 个全新的 EC2 实例,并尝试 运行 直接在它们上运行应用程序(不是作为 K8s 的一部分),但这也失败了。即使 2 个 EC2 实例在同一个 subnet/availability-zone.

上,它们也无法通过广播消息进行通信

因此,以下问题:

谢谢

从概念上讲,您需要像 this. There's a CNI that support multicast and here's the AWS blog 一样在 VPC 本机之上创建覆盖网络。