6.6.5. 创建新的 control plane 节点


通过创建 BareMetalHost 对象和节点开始创建新的 control plane 节点。

流程

  1. 编辑之前保存的 bmh_affected.yaml 文件:

    1. 从文件中删除以下元数据项目:

      • creationTimestamp
      • generation
      • resourceVersion
      • uid
    2. 删除文件的 status 部分。

    生成的文件应类似以下示例:

    bmh_affected.yaml 文件示例

    apiVersion: metal3.io/v1alpha1
    kind: BareMetalHost
    metadata:
      labels:
        installer.openshift.io/role: control-plane
      name: openshift-control-plane-2
      namespace: openshift-machine-api
    spec:
      automatedCleaningMode: disabled
      bmc:
        address:
        credentialsName:
        disableCertificateVerification: true
      bootMACAddress: ab:cd:ef:ab:cd:ef
      bootMode: UEFI
      externallyProvisioned: true
      online: true
      rootDeviceHints:
        deviceName: /dev/disk/by-path/pci-0000:04:00.0-nvme-1
      userData:
        name: master-user-data-managed
        namespace: openshift-machine-api

  2. 运行以下命令,使用 bmh_affected.yaml 文件创建 BareMetalHost 对象:

    $ oc create -f bmh_affected.yaml

    在创建 BareMetalHost 对象时会出现以下警告:

    Warning: metadata.finalizers: "baremetalhost.metal3.io": prefer a domain-qualified finalizer name to avoid accidental conflicts with other finalizer writers
  3. 运行以下命令来提取 control plane ignition secret:

    $ oc extract secret/master-user-data-managed \
        -n openshift-machine-api \
        --keys=userData \
        --to=- \
        | sed '/^userData/d' > new_controlplane.ign

    此命令还会删除 ignition secret 的起始 userData 行。

  4. 使用以下示例参考,为新节点的网络配置创建一个名为 new_controlplane_nmstate.yaml 的 Nmstate YAML 文件:

    Nmstate YAML 文件示例

    interfaces:
      - name: eno1
        type: ethernet
        state: up
        mac-address: "ab:cd:ef:01:02:03"
        ipv4:
          enabled: true
          address:
            - ip: 192.168.20.11
              prefix-length: 24
          dhcp: false
        ipv6:
          enabled: false
    dns-resolver:
      config:
        search:
          - iso.sterling.home
        server:
          - 192.168.20.8
    routes:
      config:
      - destination: 0.0.0.0/0
        metric: 100
        next-hop-address: 192.168.20.1
        next-hop-interface: eno1
        table-id: 254

    注意

    如果使用基于代理的安装程序安装集群,您可以使用原始集群部署的 agent-config.yaml 文件中的故障节点的 networkConfig 部分作为新 control plane 节点的 Nmstate 文件的起点。例如,以下命令提取第一个 control plane 节点的 networkConfig 部分:

    $ cat agent-config-iso.yaml | yq .hosts[0].networkConfig > new_controlplane_nmstate.yaml
  5. 运行以下命令,创建自定义的 Red Hat Enterprise Linux CoreOS (RHCOS) live ISO:

    $ coreos-installer iso customize rhcos-live.86_64.iso \
        --dest-ignition new_controlplane.ign \
        --network-nmstate new_controlplane_nmstate.yaml \
        --dest-device /dev/disk/by-path/<device_path> \
        -f

    <device_path> 替换为生成 ISO 的目标设备的路径。

  6. 使用自定义 RHCOS live ISO 引导新的 control plane 节点。
  7. 批准证书签名请求(CSR),将新节点加入到集群中。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部