[英]Multicast traffic to Kubernetes
我希望我的 pod 接收从我的 kubernetes 集群外部流向我节点中特定端口的多播网络流量。
我正在考虑两种解决方案:
hostNetwork: true
标志与hostPort
配置一起添加到他们的yaml
文件中,以便直接接收到 pod 的流量。iptables
命令将节点上的本地流量从eth0
接口转发到docker0
接口。方法1是Kubernetes的官方特性,但是感觉就像打破了docker最初强加的安全墙,可能会导致与主机进程的端口冲突等。
另一方面,方法 2 将多播网络流量透明地转发到 pod。
尽管我可以使用自动化工具来传播这个配置(ansible/salt 等),但任何配置在 Kubernetes 的“范围之外”的东西对我来说都感觉有点麻烦。
想听听您的优点和缺点、评论,以及多播到 kubernetes 集群的问题的其他解决方案。
支持多播的一种更multus-cni
通过multus-cni
向您的 POD 添加一个额外的接口。 然后,您可以将这个新的multus
接口关联到将在主机上接收多播流量的主机网络接口。 总而言之,您的 POD 上将有两个界面,即:
net1
(默认)用于 pod-to-pod 通信和其他单播流量。eth0
(multus) 用于多播流量。 然后您需要使用bridge
或macvlan
将它与主机中的网卡“加入”在此处查看更多详细信息: https : //github.com/intel/multus-cni/blob/master/docs/quickstart.md
我和 hostNetwork 玩了一会儿,我理解你的保留意见。 我看到打开它会为我的 pod 提供与托管节点相同的 IP。 但是它无法与任何节点通信(也许我做错了什么?)。
编辑:我肯定错过了一些东西
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
我添加了dnsPolicy
所以我现在正在尝试使用 CNI 的替代方法。 还在研究那个。 这对我来说是新的,所以我会尽快发布更新。
最后我们选择了方法 1,因为它是实现我们想要的记录的方式,我可以报告它工作正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.