5.3. 使用 BMO 在用户置备的集群中置备新主机


您可以通过创建一个 BareMetalHost 自定义资源 (CR),使用 Bare Metal Operator (BMO) 在用户置备的集群中置备裸机主机。

注意

要使用 BMO 为集群置备裸机主机,您必须将 BareMetalHost 自定义资源中的 spec.externallyProvisioned 规格设置为 false

先决条件

  • 您创建了用户置备的裸机集群。
  • 您有到主机的基板管理控制器 (BMC) 访问权限。
  • 通过创建一个 Provisioning CR,在集群中部署了置备服务。

流程

  1. 创建 Secret CR 和 BareMetalHost CR。

    1. 将以下 YAML 保存到 bmh.yaml 文件中:

      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: worker1-bmc
        namespace: openshift-machine-api
      type: Opaque
      data:
        username: <base64_of_uid>
        password: <base64_of_pwd>
      ---
      apiVersion: metal3.io/v1alpha1
      kind: BareMetalHost
      metadata:
        name: worker1
        namespace: openshift-machine-api
      spec:
        bmc:
          address: <protocol>://<bmc_url> 
      1
      
          credentialsName: "worker1-bmc"
        bootMACAddress: <nic1_mac_address>
        externallyProvisioned: false 
      2
      
        customDeploy:
          method: install_coreos
        online: true
        userData:
          name: worker-user-data-managed
          namespace: openshift-machine-api
      Copy to Clipboard Toggle word wrap
      1
      您只能使用支持虚拟介质网络引导的裸机主机驱动程序,如 redfish-virtualmediaidrac-virtualmedia
      2
      您必须将 BareMetalHost 自定义资源中的 spec.externallyProvisioned 规格设置为 false。默认值为 false
  2. 运行以下命令来创建裸机主机对象:

    $ oc create -f bmh.yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    secret/worker1-bmc created
    baremetalhost.metal3.io/worker1 created
    Copy to Clipboard Toggle word wrap

  3. 批准所有证书签名请求 (CSR)。

    1. 运行以下命令验证主机的置备状态是否为 provisioned

      $ oc get bmh -A
      Copy to Clipboard Toggle word wrap

      输出示例

      NAMESPACE               NAME          STATE                    CONSUMER   ONLINE   ERROR   AGE
      openshift-machine-api   controller1   externally provisioned              true             5m25s
      openshift-machine-api   worker1       provisioned                         true             4m45s
      Copy to Clipboard Toggle word wrap

    2. 运行以下命令,获取待处理的 CSR 列表:

      $ oc get csr
      Copy to Clipboard Toggle word wrap

      输出示例

      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
      Copy to Clipboard Toggle word wrap

    3. 运行以下命令来批准 CSR:

      $ oc adm certificate approve <csr_name>
      Copy to Clipboard Toggle word wrap

      输出示例

      certificatesigningrequest.certificates.k8s.io/<csr_name> approved
      Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令验证节点是否已就绪:

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME        STATUS   ROLES           AGE     VERSION
    app1        Ready    worker          47s     v1.24.0+dc5a2fd
    controller1 Ready    master,worker   2d22h   v1.24.0+dc5a2fd
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat