第 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 地址。
5.1. 创建网络附加定义
要使用 Multus,需要一个已具有正确网络配置的集群,请参阅 Multus 配置的要求。新创建的 NetworkAttachmentDefinition(NAD)可以在 Storage Cluster 安装过程中选择。这就是必须在存储集群之前创建它们的原因。
网络附加定义只能使用 whereabouts
IP 地址管理 (IPAM) 的位置,它必须指定 range
字段。不支持 ipRanges
和插件链。
您可以在存储集群安装过程中选择新创建的 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
示例,适用于客户端存储流量,以及用于复制流量的集群。它需要在 OpenShift 节点上有两个额外的接口,托管对象存储设备(OSD) pod,在所有其他可调度节点上有一个额外的接口(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
)。