3.4. 将裸机置备服务(ironic)添加到 control plane
要在 OpenShift (RHOSO)部署的 Red Hat OpenStack Services 上启用裸机置备服务(ironic),您必须将 ironic 服务添加到 control plane 中,并根据需要进行配置。
流程
-
在工作站上打开
OpenStackControlPlane自定义资源(CR)文件openstack_control_plane.yaml。 将以下
cellTemplates配置添加到nova服务配置中:nova: apiOverride: route: {} template: ... secret: osp-secret cellTemplates: cell0: cellDatabaseAccount: nova-cell0 hasAPIAccess: true cell1: cellDatabaseAccount: nova-cell1 cellDatabaseInstance: openstack-cell1 cellMessageBusInstance: rabbitmq-cell1 hasAPIAccess: true novaComputeTemplates: compute-ironic:1 computeDriver: ironic.IronicDriver- 1
- Compute 服务的名称。名称限制为 20 个字符,且只能包含小写字母数字字符和
-符号。
启用
ironic服务并指定要连接的网络:spec: ... ironic: enabled: true template: rpcTransport: oslo databaseInstance: openstack ironicAPI: replicas: 1 override: service: internal: metadata: annotations: metallb.universe.tf/address-pool: ctlplane metallb.universe.tf/allow-shared-ip: ctlplane metallb.universe.tf/loadBalancerIPs: 192.168.122.80 spec: type: LoadBalancer ironicConductors: - replicas: 1 storageRequest: 10G networkAttachments: - baremetal1 provisionNetwork: baremetal2 ironicInspector: replicas: 03 networkAttachments: - baremetal4 inspectionNetwork: baremetal5 ironicNeutronAgent: replicas: 1 secret: osp-secret- 1
- 您为隔离的裸机网络创建的
NetworkAttachmentDefinitionCR 的名称,用于为ironicConductorpod 准备 RHOCP。 - 2
- 3
- 您可以在没有
ironicInspector服务的情况下部署裸机置备服务。要部署该服务,请将副本数设置为1。 - 4
- 您为隔离的裸机网络创建的
NetworkAttachmentDefinitionCR 的名称,用于为ironicInspectorpod 为裸机网络准备 RHOCP。 - 5
- 您创建的 Networking 服务(neutron)网络的名称,用作 创建裸机网络 中的检查网络。Ironic Inspector API 侦听端口 5050。
指定裸机置备服务用于置备、清理、检查和销毁裸机节点的网络:
spec: ... ironic: ... ironicConductors: - replicas: 1 storageRequest: 10G networkAttachments: - baremetal provisionNetwork: baremetal customServiceConfig: | [neutron] cleaning_network = <network_UUID> provisioning_network = <network_UUID> inspection_network = <network_UUID> rescuing_network = <network_UUID>-
将 <
network_UUID> 替换为您在为该功能 创建裸机网络时创建的网络的 UUID。
-
将 <
配置 OVN 映射:
ovn: template: ovnController: ... nicMappings:1 datacentre: ocpbr baremetal: baremetal- 1
- 将物理网络供应商映射到
NodeNetworkConfigurationPolicy(nncp) CR 中定义的接口名称的键值对列表。
更新 control plane:
$ oc apply -f openstack_control_plane.yaml -n openstack等待 RHOCP 创建与
OpenStackControlPlaneCR 相关的资源。运行以下命令来检查状态:$ oc get openstackcontrolplane -n openstack NAME STATUS MESSAGE openstack-control-plane Unknown Setup started当状态为 "Setup complete" 时,会创建
OpenStackControlPlane资源。提示将
-w选项附加到get命令的末尾,以跟踪部署进度。通过查看
openstack命名空间中的 pod 确认 control plane 已部署:$ oc get pods -n openstack当所有 pod 都已完成或运行时,会部署 control plane。
验证
打开与
OpenStackClientpod 的远程 shell 连接:$ oc rsh -n openstack openstackclient确认内部服务端点已注册到每个服务:
$ openstack endpoint list -c 'Service Name' -c Interface -c URL --service ironic +--------------+-----------+---------------------------------------------------------------+ | Service Name | Interface | URL | +--------------+-----------+---------------------------------------------------------------+ | ironic | internal | http://ironic-internal.openstack.svc:9292 | | ironic | public | http://ironic-public-openstack.apps.ostest.test.metalkube.org | +--------------+-----------+---------------------------------------------------------------+退出
openstackclientpod:$ exit