5.3. 使用 BMO 在用户置备的集群中置备新主机
您可以通过创建一个 BareMetalHost 自定义资源 (CR),使用 Bare Metal Operator (BMO) 在用户置备的集群中置备裸机主机。
注意
要使用 BMO 为集群置备裸机主机,您必须将 BareMetalHost 自定义资源中的 spec.externallyProvisioned 规格设置为 false。
先决条件
- 您创建了用户置备的裸机集群。
- 您有到主机的基板管理控制器 (BMC) 访问权限。
-
通过创建一个
ProvisioningCR,在集群中部署了置备服务。
流程
创建
SecretCR 和BareMetalHostCR。运行以下命令来创建裸机主机对象:
oc create -f bmh.yaml
$ oc create -f bmh.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
secret/worker1-bmc created baremetalhost.metal3.io/worker1 created
secret/worker1-bmc created baremetalhost.metal3.io/worker1 createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 批准所有证书签名请求 (CSR)。
运行以下命令验证主机的置备状态是否为
provisioned:oc get bmh -A
$ oc get bmh -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE openshift-machine-api controller1 externally provisioned true 5m25s openshift-machine-api worker1 provisioned true 4m45s
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE openshift-machine-api controller1 externally provisioned true 5m25s openshift-machine-api worker1 provisioned true 4m45sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,获取待处理的 CSR 列表:
oc get csr
$ oc get csrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION csr-gfm9f 33s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-o perator:node-bootstrapper <none> Pending
NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION csr-gfm9f 33s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-o perator:node-bootstrapper <none> PendingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来批准 CSR:
oc adm certificate approve <csr_name>
$ oc adm certificate approve <csr_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
certificatesigningrequest.certificates.k8s.io/<csr_name> approved
certificatesigningrequest.certificates.k8s.io/<csr_name> approvedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令验证节点是否已就绪:
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS ROLES AGE VERSION app1 Ready worker 47s v1.24.0+dc5a2fd controller1 Ready master,worker 2d22h v1.24.0+dc5a2fd
NAME STATUS ROLES AGE VERSION app1 Ready worker 47s v1.24.0+dc5a2fd controller1 Ready master,worker 2d22h v1.24.0+dc5a2fdCopy to Clipboard Copied! Toggle word wrap Toggle overflow