6.6.5. 创建新的 control plane 节点
通过创建 BareMetalHost 对象和节点开始创建新的 control plane 节点。
流程
编辑之前保存的
bmh_affected.yaml文件:从文件中删除以下元数据项目:
-
creationTimestamp -
generation -
resourceVersion -
uid
-
-
删除文件的
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运行以下命令,使用
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运行以下命令来提取 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行。使用以下示例参考,为新节点的网络配置创建一个名为
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运行以下命令,创建自定义的 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 的目标设备的路径。- 使用自定义 RHCOS live ISO 引导新的 control plane 节点。
- 批准证书签名请求(CSR),将新节点加入到集群中。