我们有一个应用程序,它使用 UDP 广播消息来形成在同一子网中运行的所有实例的“集群”。
我们可以使用hostNetwork:true
for pods 在我们的(相当标准的)本地 K8s 安装中成功运行这个应用程序。这是可行的,因为所有 K8s 节点都在同一个子网中,并且可以进行广播。(小提示:K8s 设置使用 flannel 网络插件)
现在我们想将此应用程序移动到托管的 K8s 服务 @AWS。但我们最初的尝试都失败了。在 2 个不同的 pod 中运行的 2 个守护进程没有看到彼此。我们认为这很可能是因为 AWS K8s 服务自动生成的 EC2 工作节点实例位于不同的子网上。然后我们在同一个子网(和同一个可用区)中创建了 2 个全新的 EC2 实例,并尝试直接在它们上运行应用程序(不是作为 K8s 的一部分),但这也失败了。即使 2 个 EC2 实例位于同一子网/可用区,它们也无法通过广播消息进行通信。
因此,以下问题:
我们初步搜索显示AWS EC2可能不支持广播/多播,但还是想问有没有办法启用它?(在 AWS 或其他云提供商上)?
我们之所以使用
hostNetwork:true
,是因为我们认为使用 K8s pod-networking 进行广播会更加困难,甚至是不可能的。但似乎有些公司提供了支持此功能的 K8s 网络插件。有人对其中任何一个有经验(或推荐)吗?例如,考虑到 AWS 在 EC2 级别上不支持它,他们会在 AWS 上工作吗?非常感谢任何关于如何解决这个问题以及我们是否有任何选择的指示..
谢谢