7.6. 多网络插件 (Multus) 支持 [技术预览]
默认情况下,Red Hat OpenShift Data Foundation 被配置为使用 Red Hat OpenShift Software Defined Network(SDN)。在这个默认配置中,SDN 会传输以下类型的流量:
- Pod 到 pod 流量
- Pod 到 OpenShift Data Foundation 的流量,称为 OpenShift Data Foundation 公共网络流量
- OpenShift Data Foundation 复制和重新平衡,称为 OpenShift Data Foundation 集群网络流量
但是,OpenShift Data Foundation 4.8 及更新的版本支持作为技术预览使用 Multus 通过隔离不同类型的网络流量来提高安全性和性能。
Multus 支持是一个技术预览功能,它只受支持并在裸机和 VMWare 部署中测试。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
如需更多信息,请参阅技术预览功能支持范围。
7.6.1. 了解多网络
在 Kubernetes 中,容器联网由实现了 Container Network Interface (CNI) 的网络插件负责。
OpenShift Container Platform 使用 Multus CNI 插件来实现对 CNI 插件的链接。在集群安装过程中,您要配置 default pod 网络。默认网络处理集群中的所有一般网络流量。您可以基于可用的 CNI 插件定义额外网络,并将一个或多个这种网络附加到 pod。您可以根据需要为集群定义多个额外网络。这可让您灵活地配置提供交换或路由等网络功能的 pod。
7.6.1.1. 额外网络使用场景
您可以在需要网络隔离的情况下使用额外网络,包括分离数据平面与控制平面。隔离网络流量对以下性能和安全性原因很有用:
- 性能
- 您可以在两个不同的平面上发送流量,以管理每个平面上流量的多少。
- 安全性
- 您可以将敏感的流量发送到专为安全考虑而管理的网络平面,也可隔离不能在租户或客户间共享的私密数据。
集群中的所有 pod 仍然使用集群范围的默认网络,以维持整个集群中的连通性。每个 pod 都有一个 eth0
接口,附加到集群范围的 pod 网络。您可以使用 oc exec -it <pod_name> -- ip a
命令来查看 pod 的接口。如果您添加了使用 Multus CNI 的额外网络接口,它们会命名为 net1
、net2
、...、netN
。
要将额外网络接口附加到 pod,您必须创建配置来定义接口的附加方式。您可以使用 NetworkAttachmentDefinition
自定义资源(CR)来指定各个接口。各个 CR 中的 CNI 配置定义如何创建该接口。
7.6.2. 使用 Multus 隔离存储流量
要使用 Multus,在部署 OpenShift Data Foundation 集群前,您必须创建稍后要附加到集群的网络附加定义(NAD)。如需更多信息,请参阅:
- 为裸机创建网络附加定义
- 为 VMware 创建网络附加定义
使用 Multus 时,根据您的硬件设置或 VMWare 实例网络设置,可以进行以下配置:
具有双网络接口的节点建议配置
隔离的存储流量
- 为 OpenShift SDN 配置一个接口(pod 到 pod 流量)
- 为所有 OpenShift Data Foundation 流量配置一个接口
具有三倍网络接口的节点建议配置
完整流量隔离
- 为 OpenShift SDN 配置一个接口(pod 到 pod 流量)
- 为所有容器集配置一个接口到 OpenShift Data Foundation 流量(OpenShift Data Foundation 公共流量)
- 为所有 OpenShift Data Foundation 复制和重新平衡流量(OpenShift Data Foundation 集群流量)配置一个接口。
7.6.3. Multus 配置的建议网络配置和要求
如果您决定利用 Multus 配置,必须满足以下先决条件:
- 用于部署 OpenShift Data Foundation 的所有节点必须具有相同的网络接口配置,才能保证完全正常工作的 Multus 配置。所有节点上的网络接口名称必须相同,并连接到 Multus 公共网络和 Multus 集群网络的相同底层交换机制。
- 用于部署使用 OpenShift Data Foundation 进行持久性存储的应用程序的所有节点必须具有相同的网络接口配置,以确保完全正常工作的 Multus 配置。两个接口之一必须与在存储节点上配置 Multus 公共网络的接口名称相同。所有工作程序网络接口必须连接到与存储节点的 Multus 公共网络相同的底层交换机制。
双网络接口隔离配置模式示例:
三网络接口完整隔离的配置模式示例:
只有运行 OpenShift Data Foundation OSD 的存储节点需要访问通过 Multus 配置的 OpenShift Data Foundation 集群网络。
如需了解配置基于裸机的 Multus 配置所需的步骤,请参阅创建 Multus 网络。
如需了解在 VMware 上配置 Multus 配置所需的步骤,请参阅创建 Multus 网络。