2.5. 创建 Multus 网络 [技术预览]
OpenShift Container Platform 使用 Multus CNI 插件来实现对 CNI 插件的链接。您可以在集群安装过程中配置默认 pod 网络。默认网络处理集群中的所有一般网络流量。
您可以基于可用的 CNI 插件定义额外网络,并将一个或多个此类网络附加到 pod。要将额外网络接口附加到 pod,您必须创建配置来定义接口的附加方式。
您可以使用 NetworkAttachmentDefinition(NAD)自定义资源 (CR) 来指定每个接口。每个 NetworkAttachmentDefinition 中的 CNI 配置定义如何创建该接口。
OpenShift Data Foundation 使用名为 macvlan 的 CNI 插件。创建基于 macvlan 的额外网络可让主机上的 pod 通过使用物理网络接口与其他主机和那些主机上的 pod 通信。附加到基于 macvlan 的额外网络的每个 pod 都会获得一个唯一的 MAC 地址。
Multus 支持是一个技术预览功能,它只受支持并在裸机和 VMWare 部署中测试。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
如需更多信息,请参阅技术预览功能支持范围。
2.5.1. 创建网络附加定义
要使用 Multus,需要已使用正确网络配置的集群,请参阅推荐的网络配置和 Multus 配置要求。新创建的 NetworkAttachmentDefinition(NAD)可以在 Storage Cluster 安装过程中选择。这就是必须在存储集群之前创建它们的原因。
您可以在存储集群安装过程中选择新创建的 NetworkAttachmentDefinition
(NAD)。这是您在创建存储集群前必须创建 NAD 的原因。
如规划指南中所述,您创建的 Multus 网络取决于您用于 OpenShift Data Foundation 流量的可用网络接口数量。可以将所有存储流量分隔到两个接口中的一个接口(一个用于默认 OpenShift SDN),或者将存储流量进一步分隔到客户端存储流量(公共)和存储复制流量(私有或集群)。
以下是同一接口上所有存储流量(公共和集群)的 NetworkAttachmentDefinition
示例。它要求所有可调度节点上有一个额外的接口(OpenShift 默认 SDN 在单独的网络接口上):
apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: ocs-public-cluster namespace: openshift-storage spec: config: '{ "cniVersion": "0.3.1", "type": "macvlan", "master": "ens2", "mode": "bridge", "ipam": { "type": "whereabouts", "range": "192.168.1.0/24" } }'
所有网络接口名称必须在附加至 Multus 网络的所有节点上相同(即 ocs-public-cluster
的 ens2
)。
以下是用于单独 Multus 网络上存储流量的 NetworkAttachmentDefinition
示例,适用于客户端存储流量,以及用于复制流量的集群。它需要在用于托管 Object Storge Device (OSD) pod 的 OpenShift 节点上有额外两个接口,在所有其他可调度的节点上有一个额外的接口(OpenShift 默认 SDN 在单独的网络接口上):
apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: ocs-public namespace: openshift-storage spec: config: '{ "cniVersion": "0.3.1", "type": "macvlan", "master": "ens2", "mode": "bridge", "ipam": { "type": "whereabouts", "range": "192.168.1.0/24" } }'
NetworkAttachmentDefinition
示例:
apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: ocs-cluster namespace: openshift-storage spec: config: '{ "cniVersion": "0.3.1", "type": "macvlan", "master": "ens3", "mode": "bridge", "ipam": { "type": "whereabouts", "range": "192.168.2.0/24" } }'
所有网络接口名称必须在附加至 Multus 网络的所有节点上相同(即,ens2
用于 ocs-public
,ens3
用于 ocs-cluster
)。