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

qncylg1j  于 2023-04-20  发布在  Kubernetes
关注(0)|答案(1)|浏览(149)

我们有一个应用程序,它使用UDP广播消息来形成在同一子网中运行的所有示例的“集群”。
我们可以通过使用hostNetwork:true for pod在本地K8s安装中成功运行这个应用程序。这是因为所有K8s节点都在同一个子网中,并且可以进行广播。(一个小提示:K8s安装程序使用flannel网络插件)
现在,我们想将此应用程序移动到托管的K8s服务@ AWS。但我们最初的尝试失败了。在2个不同的Pod中运行的2个守护程序无法看到彼此。我们认为这很可能是由于自动生成的EC2工作节点示例驻留在不同的子网中。然后,我们在同一子网中创建了2个全新的EC2示例(和相同的可用性区域)并尝试直接在它们上运行应用程序(不是作为K8的一部分),但也失败了。即使2个EC2示例位于同一子网/可用性区域,它们也无法通过广播消息进行通信。
因此,以下问题:

  • 我们的初步搜索显示,AWS EC2可能不支持广播/多播,但仍然想问是否有办法启用它?(在AWS或其他云提供商上)?
  • 我们使用了hostNetwork:true,因为我们认为使用K8s pod-networking进行广播会更困难,如果不是不可能的话。但似乎有些公司提供支持这一点的K8s网络插件。有人有经验(或推荐)其中任何一个吗?他们会在AWS上工作吗?例如,考虑到AWS不支持EC2级别?
  • 非常感谢任何关于如何处理这个问题的建议,以及我们是否有任何选择。

谢谢

0x6upsns

0x6upsns1#

从概念上讲,您需要在VPC本机(如this)之上创建覆盖网络。有一个CNI支持多播,这里是AWS blog

相关问题