到 Kubernetes 的多播流量
Multicast traffic to Kubernetes
我希望我的 pods 接收从我的 kubernetes 集群外部流向我节点中特定端口的多播网络流量。
我正在考虑两种解决方案:
- 将
hostNetwork: true
标志与 hostPort
配置一起添加到他们的 yaml
文件中,以便将流量直接接收到 pod。
- 使用
iptables
命令将节点上的流量从 eth0
接口本地转发到 docker0
接口。
方法一是Kubernetes的官方特性,但感觉像是打破了docker原本强加的安全墙,可能会导致端口问题
与主机进程的冲突等。
另一方面,方法 2 透明地将多播网络流量转发到 pods。
尽管我可以使用自动化工具来传播此配置(ansible/salt 等),但 Kubernetes 的任何配置 'out of the scope' 对我来说都感觉有点老套。
想听听您的优缺点、评论以及关于多播到 kubernetes 集群问题的其他解决方案。
最后我们选择了方法 1,因为它是实现我们想要的目标的记录方式,我可以报告它工作正常。
我玩了一下 hostNetwork,我理解你的保留意见。我看到打开它会为我的 pod 提供与托管节点相同的 IP。但是它无法与任何节点通信(也许我做错了什么?)。
编辑:
我肯定错过了什么
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
我添加了 dnsPolicy
所以我现在正在尝试使用 CNI 的替代方法。还在研究那个。这对我来说是新的,所以我会尽快 post 更新。
听说WeaveWorks支持组播:https://www.weave.works/use-cases/multicast-networking/
github issue 对多播支持只字不提
支持多播的更简洁的方法是通过 multus-cni
向您的 PODs 添加一个额外的接口。然后,您可以将这个新的 multus
接口关联到您的主机网络接口,该接口将在主机上接收多播流量。总而言之,您的 POD 上将有两个界面,即:
net1
(默认)用于 pod 到 pod 通信和其他单播流量。
eth0
(multus) 用于多播流量。然后,您需要通过使用 bridge
或 macvlan
将其与主机中的 NIC“加入”
在此处查看更多详细信息:https://github.com/intel/multus-cni/blob/master/docs/quickstart.md
我希望我的 pods 接收从我的 kubernetes 集群外部流向我节点中特定端口的多播网络流量。
我正在考虑两种解决方案:
- 将
hostNetwork: true
标志与hostPort
配置一起添加到他们的yaml
文件中,以便将流量直接接收到 pod。 - 使用
iptables
命令将节点上的流量从eth0
接口本地转发到docker0
接口。
方法一是Kubernetes的官方特性,但感觉像是打破了docker原本强加的安全墙,可能会导致端口问题 与主机进程的冲突等。
另一方面,方法 2 透明地将多播网络流量转发到 pods。
尽管我可以使用自动化工具来传播此配置(ansible/salt 等),但 Kubernetes 的任何配置 'out of the scope' 对我来说都感觉有点老套。
想听听您的优缺点、评论以及关于多播到 kubernetes 集群问题的其他解决方案。
最后我们选择了方法 1,因为它是实现我们想要的目标的记录方式,我可以报告它工作正常。
我玩了一下 hostNetwork,我理解你的保留意见。我看到打开它会为我的 pod 提供与托管节点相同的 IP。但是它无法与任何节点通信(也许我做错了什么?)。
编辑: 我肯定错过了什么
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
我添加了 dnsPolicy
所以我现在正在尝试使用 CNI 的替代方法。还在研究那个。这对我来说是新的,所以我会尽快 post 更新。
听说WeaveWorks支持组播:https://www.weave.works/use-cases/multicast-networking/
github issue 对多播支持只字不提
支持多播的更简洁的方法是通过 multus-cni
向您的 PODs 添加一个额外的接口。然后,您可以将这个新的 multus
接口关联到您的主机网络接口,该接口将在主机上接收多播流量。总而言之,您的 POD 上将有两个界面,即:
net1
(默认)用于 pod 到 pod 通信和其他单播流量。eth0
(multus) 用于多播流量。然后,您需要通过使用bridge
或macvlan
将其与主机中的 NIC“加入”
在此处查看更多详细信息:https://github.com/intel/multus-cni/blob/master/docs/quickstart.md