6.6.5. 新しいコントロールプレーンノードの作成
BareMetalHost オブジェクトとノードを作成して、新しいコントロールプレーンノードの作成を開始します。
手順
さきほど保存した
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.yamlBareMetalHostオブジェクトの作成時に、以下の警告が想定されます。Warning: metadata.finalizers: "baremetalhost.metal3.io": prefer a domain-qualified finalizer name to avoid accidental conflicts with other finalizer writers次のコマンドを実行して、コントロールプレーンの Ignition シークレットを抽出します。
$ oc extract secret/master-user-data-managed \ -n openshift-machine-api \ --keys=userData \ --to=- \ | sed '/^userData/d' > new_controlplane.ignこのコマンドは、Ignition シークレットの開始行の
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-based Installer を使用してクラスターをインストールした場合は、元のクラスターデプロイメントの
agent-config.yamlファイルにある障害が発生したノードのnetworkConfigセクションを、新しいコントロールプレーンノードの Nmstate ファイルの開始点として使用できます。たとえば、次のコマンドは、最初のコントロールプレーンノードのnetworkConfigセクションを抽出します。$ cat agent-config-iso.yaml | yq .hosts[0].networkConfig > new_controlplane_nmstate.yaml次のコマンドを実行して、カスタマイズされた Red Hat Enterprise Linux CoreOS (RHCOS) ライブ 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 ライブ ISO を使用して、新しいコントロールプレーンノードを起動します。
- 証明書署名要求 (CSR) を承認して、新しいノードをクラスターに参加させます。