3.2. 为裸机网络准备 RHOCP
Red Hat OpenStack Services on OpenShift (RHOSO)服务作为 Red Hat OpenShift Container Platform (RHOCP)工作负载运行。您可以使用 NMState Operator 将 worker 节点连接到所需的隔离网络。您可以使用 MetalLB Operator 在隔离的网络上公开内部服务端点。默认情况下,公共服务端点作为 RHOCP 路由公开。
为 ironic 服务 pod 附加到的裸机置备服务(ironic)创建隔离网络。以下流程创建一个名为 baremetal 的隔离网络。
有关如何创建隔离网络的更多信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services 中的 为 RHOSO 网络准备 RHOCP。
以下流程中的示例使用 IPv4 地址。您可以使用 IPv6 地址而不是 IPv4 地址。双堆栈 IPv4/6 不可用。有关如何配置 IPv6 地址的详情,请参考 RHOCP 网络指南中的以下资源 :
3.2.1. 为裸机置备服务准备带有隔离网络接口的 RHOCP 复制链接链接已复制到粘贴板!
创建一个 NodeNetworkConfigurationPolicy (nncp) CR,在 Red Hat OpenShift Container Platform (RHOCP)集群中的每个 worker 节点上配置隔离裸机网络的接口。
流程
-
在工作站上创建一个
NodeNetworkConfigurationPolicy(nncp) CR 文件,以便在 RHOCP 集群中的每个 worker 节点上配置隔离裸机网络的接口,例如baremetal-nncp.yaml。 检索 RHOCP 集群中 worker 节点的名称:
$ oc get nodes -l node-role.kubernetes.io/worker -o jsonpath="{.items[*].metadata.name}"发现网络配置:
$ oc get nns/<worker_node> -o yaml | more-
将
<worker_node> 替换为在第 2 步中获取的 worker 节点的名称,如worker-1。为每个 worker 节点重复此步骤。
-
将
在
nncpCR 文件中,在 RHOCP 集群中每个 worker 节点上配置隔离裸机网络的接口,并配置虚拟路由和转发(VRF)以避免非对称路由。在以下示例中,nncpCR 为 worker 节点 1 (osp-enp6s0-worker-1)配置baremetal接口,以使用 enp8s0 接口上的网桥进行网络隔离:apiVersion: nmstate.io/v1 kind: NodeNetworkConfigurationPolicy metadata: name: osp-enp6s0-worker-1 spec: desiredState: interfaces: .... - description: Ironic bridge name: baremetal type: linux-bridge mtu: 1500 bridge: options: stp: enabled: false port: - name: enp8s0 ipv4: address: - ip: 172.17.0.10 prefix-length: "24" enabled: true ipv6: enabled: false - description: Ironic VRF name: ironicvrf state: up type: vrf vrf: port: - baremetal route-table-id: 10 route-rules: config: [] routes: config: - destination: 0.0.0.0/0 metric: 150 next-hop-address: 172.17.0.1 next-hop-interface: baremetal table-id: 10 - destination: 172.17.0.0/24 metric: 150 next-hop-address: 192.168.122.1 next-hop-interface: ospbr在集群中创建
nncpCR:$ oc apply -f baremetal-nncp.yaml验证
nncpCR 是否已创建:$ oc get nncp -w NAME STATUS REASON osp-enp6s0-worker-1 Progressing ConfigurationProgressing osp-enp6s0-worker-1 Progressing ConfigurationProgressing osp-enp6s0-worker-1 Available SuccessfullyConfigured
3.2.2. 将 ironic 服务 pod 附加到 baremetal 网络 复制链接链接已复制到粘贴板!
为每个隔离网络创建一个 NetworkAttachmentDefinition (net-attach-def)自定义资源(CR),以将服务 pod 附加到网络。
流程
-
在工作站上为裸机网络创建一个
NetworkAttachmentDefinition(net-attach-def) CR 文件,以将ironic服务 pod 附加到网络,如baremetal-net-attach-def.yaml。 在
NetworkAttachmentDefinitionCR 文件中,为baremetal网络配置NetworkAttachmentDefinition资源,以将ironic服务部署 pod 附加到网络:apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: baremetal namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "baremetal", "type": "bridge", "master": "baremetal",1 "ipam": {2 "type": "whereabouts", "range": "172.17.0.0/24", "range_start": "172.17.0.30",3 "range_end": "172.17.0.70" } }在集群中创建
NetworkAttachmentDefinitionCR:$ oc apply -f baremetal-net-attach-def.yaml验证
NetworkAttachmentDefinitionCR 是否已创建:$ oc get net-attach-def -n openstack
3.2.3. 为 baremetal 网络 VIP 准备 RHOCP 复制链接链接已复制到粘贴板!
Red Hat OpenStack Services on OpenShift (RHOSO)服务作为 Red Hat OpenShift Container Platform (RHOCP)工作负载运行。您必须创建一个 L2Advertisement 资源,以定义如何宣布虚拟 IP (VIP)和 IPAddressPool 资源来配置哪些 IP 可用作 VIP。在第 2 层模式中,一个节点假定将服务公告给本地网络。
流程
-
在工作站上创建一个
IPAddressPoolCR 文件,以配置哪些 IP 可以用作 VIP,例如baremetal-ipaddresspools.yaml。 在
IPAddressPoolCR 文件中,在baremetal网络中配置IPAddressPool资源,以指定 MetalLB 具有授权的 IP 地址范围:apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: baremetal namespace: metallb-system spec: addresses: - 172.17.0.80-172.17.0.901 autoAssign: true avoidBuggyIPs: false- 1
IPAddressPool范围不得与whereaboutsIPAM 范围和 NetConfigallocationRange重叠。
有关如何配置其他
IPAddressPool资源参数的详情,请参考 RHOCP 网络指南中的 配置 MetalLB 地址池。在集群中创建
IPAddressPoolCR:$ oc apply -f baremetal-ipaddresspools.yaml验证
IPAddressPoolCR 是否已创建:$ oc describe -n metallb-system IPAddressPool-
在工作站上创建
L2AdvertisementCR 文件,以定义如何宣布虚拟 IP (VIP),如baremetal-l2advertisement.yaml。 在
L2AdvertisementCR 文件中,配置L2AdvertisementCR 来定义哪个节点向本地网络公告ironic服务:apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: baremetal namespace: metallb-system spec: ipAddressPools: - baremetal interfaces: - baremetal1 - 1
- 声明从 VLAN 地址池请求的 VIP 的接口。
有关如何配置其他
L2Advertisement资源参数的详情,请参考 RHOCP 网络指南中的 使用 L2 公告和标签配置 MetalLB。在集群中创建
L2AdvertisementCR:$ oc apply -f baremetal-l2advertisement.yaml验证
L2AdvertisementCR 是否已创建:$ oc get -n metallb-system L2Advertisement NAME IPADDRESSPOOLS IPADDRESSPOOL SELECTORS INTERFACES baremetal ["baremetal"] ["enp6s0"]