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 nodes -l node-role.kubernetes.io/worker -o jsonpath="{.items[*].metadata.name}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 发现网络配置:
oc get nns/<worker_node> -o yaml | more
$ oc get nns/<worker_node> -o yaml | more
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<worker_node
> 替换为在第 2 步中获取的 worker 节点的名称,如worker-1
。为每个 worker 节点重复此步骤。
-
将
在
nncp
CR 文件中,在 RHOCP 集群中每个 worker 节点上配置隔离裸机网络的接口,并配置虚拟路由和转发(VRF)以避免非对称路由。在以下示例中,nncp
CR 为 worker 节点 1 (osp-enp6s0-worker-1
)配置baremetal
接口,以使用 enp8s0 接口上的网桥进行网络隔离:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在集群中创建
nncp
CR:oc apply -f baremetal-nncp.yaml
$ oc apply -f baremetal-nncp.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
nncp
CR 是否已创建:oc get nncp -w
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2. 将 ironic 服务 pod 附加到 baremetal 网络 复制链接链接已复制到粘贴板!
为每个隔离网络创建一个 NetworkAttachmentDefinition
(net-attach-def
)自定义资源(CR),以将服务 pod 附加到网络。
流程
-
在工作站上为裸机网络创建一个
NetworkAttachmentDefinition
(net-attach-def
) CR 文件,以将ironic
服务 pod 附加到网络,如baremetal-net-attach-def.yaml
。 在
NetworkAttachmentDefinition
CR 文件中,为baremetal
网络配置NetworkAttachmentDefinition
资源,以将ironic
服务部署 pod 附加到网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在集群中创建
NetworkAttachmentDefinition
CR:oc apply -f baremetal-net-attach-def.yaml
$ oc apply -f baremetal-net-attach-def.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
NetworkAttachmentDefinition
CR 是否已创建:oc get net-attach-def -n openstack
$ oc get net-attach-def -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 层模式中,一个节点假定将服务公告给本地网络。
流程
-
在工作站上创建一个
IPAddressPool
CR 文件,以配置哪些 IP 可以用作 VIP,例如baremetal-ipaddresspools.yaml
。 在
IPAddressPool
CR 文件中,在baremetal
网络中配置IPAddressPool
资源,以指定 MetalLB 具有授权的 IP 地址范围:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
IPAddressPool
范围不得与whereabouts
IPAM 范围和 NetConfigallocationRange
重叠。
有关如何配置其他
IPAddressPool
资源参数的详情,请参考 RHOCP 网络指南中的 配置 MetalLB 地址池。在集群中创建
IPAddressPool
CR:oc apply -f baremetal-ipaddresspools.yaml
$ oc apply -f baremetal-ipaddresspools.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
IPAddressPool
CR 是否已创建:oc describe -n metallb-system IPAddressPool
$ oc describe -n metallb-system IPAddressPool
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在工作站上创建
L2Advertisement
CR 文件,以定义如何宣布虚拟 IP (VIP),如baremetal-l2advertisement.yaml
。 在
L2Advertisement
CR 文件中,配置L2Advertisement
CR 来定义哪个节点向本地网络公告ironic
服务:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 声明从 VLAN 地址池请求的 VIP 的接口。
有关如何配置其他
L2Advertisement
资源参数的详情,请参考 RHOCP 网络指南中的 使用 L2 公告和标签配置 MetalLB。在集群中创建
L2Advertisement
CR:oc apply -f baremetal-l2advertisement.yaml
$ oc apply -f baremetal-l2advertisement.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
L2Advertisement
CR 是否已创建:oc get -n metallb-system L2Advertisement
$ oc get -n metallb-system L2Advertisement NAME IPADDRESSPOOLS IPADDRESSPOOL SELECTORS INTERFACES baremetal ["baremetal"] ["enp6s0"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow