到 Kubernetes 的多播流量

Jja*_*ang 2 networking multicast docker kubernetes

我希望我的 pod 接收从我的 kubernetes 集群外部流向我节点中特定端口的多播网络流量。

我正在考虑两种解决方案:

  1. 将hostNetwork: true标志yaml与hostPort配置一起添加到他们的文件中,以便直接接收到 pod 的流量。
  2. 使用命令在节点上本地转发流量从一个eth0接口到docker0另一个接口iptables。

方法1是Kubernetes的官方特性,但是感觉就像打破了docker最初强加的安全墙,可能会导致与主机进程的端口冲突等。

另一方面,方法 2 将多播网络流量透明地转发到 pod。
尽管我可以使用自动化工具来传播此配置(ansible/salt 等),但任何配置“超出 Kubernetes 范围”的东西对我来说都感觉有点棘手。

想听听您的优点和缺点、评论,以及多播到 kubernetes 集群的问题的其他解决方案。

gda*_*ila 5

支持多播的一种更简洁的方法是通过multus-cni. 然后,您可以将此新multus接口关联到将在主机上接收多播流量的主机网络接口。总而言之,您的 POD 上将有两个界面,即:

  1. net1 (默认)用于 pod-to-pod 通信和其他单播流量。
  2. eth0(multus) 用于多播流量。然后,您需要通过使用bridge或macvlan

在此处查看更多详细信息:https : //github.com/intel/multus-cni/blob/master/docs/quickstart.md