Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

8.9. 启用多播

重要

目前,多播最适用于低带宽协调或服务发现,而不是高带宽解决方案。

默认情况下,OpenShift Container Platform pod 之间多播流量被禁用。如果使用 ovs-multitenantovs-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 插件时:

  1. 在隔离的项目中,容器集发送的多播数据包将传送到项目中的所有其他 pod。
  2. 如果将 网络连接在一起,则需要在每个项目的 netnamespace 中启用多播,以便它在任何项目中生效。接合网络中的 pod 发送的多播数据包将传送到所有接合网络中的所有 pod。
  3. 要在 default 项目中启用多播,还必须在 kube-service-catalog 项目和所有其他 已全局 的项目中启用它。全局项目不是多播的"全局";全局项目中的 pod 发送的多播数据包将仅传送到其他全局项目中的 pod,而非所有项目中的所有容器集。同样,全局项目中的 pod 将仅接收从其他全局项目中的 pod 发送的多播数据包,而不接收来自所有项目中所有容器集的多播数据包。

使用 ovs-networkpolicy 插件时:

  1. pod 发送的多播数据包将传送到项目中的所有其他 pod,而无需考虑 NetworkPolicy 对象。(pod 或许能通过多播进行通信,即使它们无法通过单播进行通信。)
  2. 一个项目中的 pod 发送的多播数据包不会传送到任何其他项目中的 pod,即使存在允许项目间通信的 NetworkPolicy 对象