【发布时间】:2017-10-13 14:43:43
【问题描述】:
我有一个集群遗留应用程序,我正试图在 kubernetes 上部署它。集群中的节点使用 UDP 广播找到彼此。由于各种原因,我无法更改此行为。
当部署在 docker 上时,这将通过创建一个共享网络(即docker network create --internal mynet,通向一个子网,例如 172.18.0.0/16)并将包含集群节点的容器连接到同一个网络来完成(@987654322 @ 和 docker network connect mynet instance2)。然后每个启动的实例都会使用 172.18.255.255 在这个网络上定期广播它的 IP 地址,直到它们形成一个集群。多个这样的集群可以驻留在同一个 kubernetes 命名空间中,因此我最好为这些 pod 创建自己的“私有网络”以避免端口冲突。
有没有办法在 kubernetes 上创建这样的网络,或者以其他方式诱使应用程序相信它已连接到这样的网络(假设其他节点的 IP 地址是已知的)?我正在运行的 kubernetes 集群使用 Calico。
【问题讨论】:
-
使用广播确实是菜鸟之举。多播就是为这样的事情而设计的。广播会中断局域网上的每个主机,但多播只会中断监听多播组的主机。如果你的软件使用广播来做这种事情,我们公司对你的产品不感兴趣。跨度>
-
多播也适合我。我的基本问题与如何在 k8s 上执行此操作有关。
标签: networking kubernetes broadcast project-calico