8.9. 启用多播
重要
目前,多播最适用于低带宽协调或服务发现,而不是高带宽解决方案。
默认情况下,OpenShift Container Platform pod 之间多播流量被禁用。如果使用 ovs-multitenant 或 ovs-networkpolicy 插件,您可以通过在项目对应的 netnamespace
对象上设置注解来启用每个项目的多播:
$ oc annotate netnamespace <namespace> \ netnamespace.network.openshift.io/multicast-enabled=true
通过删除注解来禁用多播:
$ oc annotate netnamespace <namespace> \ netnamespace.network.openshift.io/multicast-enabled-
使用 ovs-multitenant 插件时:
- 在隔离的项目中,容器集发送的多播数据包将传送到项目中的所有其他 pod。
-
如果将 网络连接在一起,则需要在每个项目的
netnamespace
中启用多播,以便它在任何项目中生效。接合网络中的 pod 发送的多播数据包将传送到所有接合网络中的所有 pod。 -
要在
default
项目中启用多播,还必须在kube-service-catalog
项目和所有其他 已全局 的项目中启用它。全局项目不是多播的"全局";全局项目中的 pod 发送的多播数据包将仅传送到其他全局项目中的 pod,而非所有项目中的所有容器集。同样,全局项目中的 pod 将仅接收从其他全局项目中的 pod 发送的多播数据包,而不接收来自所有项目中所有容器集的多播数据包。
使用 ovs-networkpolicy 插件时:
-
pod 发送的多播数据包将传送到项目中的所有其他 pod,而无需考虑
NetworkPolicy
对象。(pod 或许能通过多播进行通信,即使它们无法通过单播进行通信。) -
一个项目中的 pod 发送的多播数据包不会传送到任何其他项目中的 pod,即使存在允许项目间通信的
NetworkPolicy 对象
。