5.4.2. 为未置备的 Networker 节点创建 BareMetalHost CR
您必须为每个裸机网络器节点创建一个 BareMetalHost 自定义资源(CR)。您至少需要提供在网络上添加裸机网络节点所需的数据,以便剩余的安装步骤可以访问该节点并执行配置。
如果您使用 ctlplane 接口进行调配,为了避免丢弃流量的内核 rp_filter 逻辑,请将 DHCP 服务配置为使用与 ctlplane 地址范围不同的地址范围。这样可确保返回的流量保留在机器网络接口中。
流程
Bare Metal Operator (BMO)默认管理
openshift-machine-api命名空间中的BareMetalHost自定义资源(CR)。更新ProvisioningCR 以监视所有命名空间:$ oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'如果您将虚拟介质引导用于裸机节点,且节点没有连接到 provisioning 网络,您必须更新
ProvisioningCR 以启用virtualMediaViaExternalNetwork,这样可通过外部网络启用裸机连接:$ oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"virtualMediaViaExternalNetwork": true }}'在工作站上创建一个文件,用用于访问节点集中每个裸机网络器节点的 Baseboard Management Controller (BMC)凭证定义
SecretCR:apiVersion: v1 kind: Secret metadata: name: edpm-networker-0-bmc-secret namespace: openstack type: Opaque data: username: <base64_username> password: <base64_password>将
<base64_username> 和 <base64_password> 替换为 base64 编码的字符串。您可以使用以下命令生成 base64 编码的字符串:$ echo -n <string> | base64提示如果您不想对用户名和密码进行 base64encode,您可以使用
stringData字段而不是data字段来设置用户名和密码。
在工作站上创建一个名为
bmh_networker_nodes.yaml的文件,该文件为每个裸机 Networker 节点定义BareMetalHostCR。以下示例使用 provisioning 方法 Redfish 虚拟介质创建一个BareMetalHostCR:apiVersion: metal3.io/v1alpha1 kind: BareMetalHost metadata: name: edpm-networker-0 namespace: openstack labels: app: openstack-networker workload: networker spec: ... bmc: address: redfish-virtualmedia+http://192.168.111.1:8000/redfish/v1/Systems/e8efd888-f844-4fe0-9e2e-498f4ab7806d credentialsName: edpm-networker-0-bmc-secret bootMACAddress: 00:c7:e4:a7:e7:f3 bootMode: UEFI online: false [preprovisioningNetworkDataName: <network_config_secret_name>]-
标签元数据标签(如app、workload和nodeName)是键值对,它为标记节点提供各种粒度级别。在创建OpenStackDataPlaneNodeSetCR 时,您可以使用这些标签来描述要置备的裸机节点的配置,或者在节点集中定义节点。 -
address- 与节点的 BMC 控制器通信的 URL。有关其他置备方法的 BMC 寻址 的详情,请参考 在裸机上部署安装程序置备的集群 中的 BMC 寻址。 -
credentialsName- 您在上一步中创建的SecretCR 的名称,用于访问节点的 BMC。 preprovisioningNetworkDataName- 可选:本地命名空间中的网络配置 secret 的名称,以传递给预置备镜像。网络配置必须采用nmstate格式。有关如何创建
BareMetalHostCR 的更多信息,请参阅关于 RHOCP 文档中的 BareMetalHost 资源。
-
创建
BareMetalHost资源:$ oc create -f bmh_networker_nodes.yaml验证
BareMetalHost资源是否已创建并处于Available状态:$ oc get bmh NAME STATE CONSUMER ONLINE ERROR AGE edpm-networker-0 Available openstack-edpm true 2d21h edpm-networker-1 Available openstack-edpm true 2d21h ...