6.2. ベアメタルコントロールプレーンノードの交換


以下の手順を使用して、installer-provisioned OpenShift Container Platform コントロールプレーンノードを置き換えます。

重要

既存のコントロールプレーンホストから BareMetalHost オブジェクト定義を再利用する場合は、externallyProvisioned フィールドを true に設定したままにしないでください。

既存のコントロールプレーン BareMetalHost オブジェクトが、OpenShift Container Platform インストールプログラムによってプロビジョニングされた場合には、externallyProvisioned フラグが true に設定されている可能性があります。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • etcd のバックアップを取得している。

    重要

    問題が発生した場合にクラスターを復元できるように、この手順を実行する前に etcd のバックアップを作成してください。etcd バックアップの作成に関する詳細は、関連情報 セクションを参照してください。

手順

  1. Bare Metal Operator が使用可能であることを確認します。

    $ oc get clusteroperator baremetal

    出力例

    NAME        VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    baremetal   4.13.0   True        False         False      3d15h

  2. 古い BareMetalHost オブジェクトおよび Machine オブジェクトを削除します。

    $ oc delete bmh -n openshift-machine-api <host_name>
    $ oc delete machine -n openshift-machine-api <machine_name>

    <host_name> をホストの名前に、<machine_name> をマシンの名前に置き換えます。マシン名は CONSUMER フィールドの下に表示されます。

    BareMetalHost オブジェクトと Machine オブジェクトを削除すると、マシンコントローラーは Node オブジェクトを自動的に削除します。

  3. 新しい BareMetalHost オブジェクトとシークレットを作成して BMC 認証情報を保存します。

    $ cat <<EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: control-plane-<num>-bmc-secret 
    1
    
      namespace: openshift-machine-api
    data:
      username: <base64_of_uid> 
    2
    
      password: <base64_of_pwd> 
    3
    
    type: Opaque
    ---
    apiVersion: metal3.io/v1alpha1
    kind: BareMetalHost
    metadata:
      name: control-plane-<num> 
    4
    
      namespace: openshift-machine-api
    spec:
      automatedCleaningMode: disabled
      bmc:
        address: <protocol>://<bmc_ip> 
    5
    
        credentialsName: control-plane-<num>-bmc-secret 
    6
    
      bootMACAddress: <NIC1_mac_address> 
    7
    
      bootMode: UEFI
      externallyProvisioned: false
      online: true
    EOF
    1 4 6
    name および credentialsName フィールドの <num> は、ベアメタルノードのコントロールプレーン番号に置き換えます。
    2
    <base64_of_uid> を、ユーザー名の base64 文字列に置き換えます。
    3
    <base64_of_pwd>> を、パスワードの base64 文字列に置き換えます。
    5
    <protocol>redfishredfish-virtualmediaidrac-virtualmedia などの BMC プロトコルに置き換えます。<bmc_ip> は、ベアメタルノードのベースボード管理コントローラーの IP アドレスに置き換えます。その他の BMC 設定オプションについては、関連情報 セクションの「BMC アドレス指定」を参照してください。
    7
    <NIC1_mac_address> は、ベアメタルノードの最初の NIC の MAC アドレスに置き換えます。

    検査が完了すると、BareMetalHost オブジェクトが作成され、プロビジョニングできるようになります。

  4. 利用可能な BareMetalHost オブジェクトを表示します。

    $ oc get bmh -n openshift-machine-api

    出力例

    NAME                          STATE                    CONSUMER                   ONLINE   ERROR   AGE
    control-plane-1.example.com   available                control-plane-1            true             1h10m
    control-plane-2.example.com   externally provisioned   control-plane-2            true             4h53m
    control-plane-3.example.com   externally provisioned   control-plane-3            true             4h53m
    compute-1.example.com         provisioned              compute-1-ktmmx            true             4h53m
    compute-1.example.com         provisioned              compute-2-l2zmb            true             4h53m

    コントロールプレーンノード用の MachineSet オブジェクトがないため、代わりに Machine オブジェクトを作成する必要があります。別のコントロールプレーン Machine オブジェクトから providerSpec をコピーできます。

  5. Machine オブジェクトを作成します。

    $ cat <<EOF | oc apply -f -
    apiVersion: machine.openshift.io/v1beta1
    kind: Machine
    metadata:
      annotations:
        metal3.io/BareMetalHost: openshift-machine-api/control-plane-<num> 
    1
    
      labels:
        machine.openshift.io/cluster-api-cluster: control-plane-<num> 
    2
    
        machine.openshift.io/cluster-api-machine-role: master
        machine.openshift.io/cluster-api-machine-type: master
      name: control-plane-<num> 
    3
    
      namespace: openshift-machine-api
    spec:
      metadata: {}
      providerSpec:
        value:
          apiVersion: baremetal.cluster.k8s.io/v1alpha1
          customDeploy:
            method: install_coreos
          hostSelector: {}
          image:
            checksum: ""
            url: ""
          kind: BareMetalMachineProviderSpec
          metadata:
            creationTimestamp: null
          userData:
            name: master-user-data-managed
    EOF
    1 2 3
    namelabels、および annotations フィールドの <num> は、ベアメタルノードのコントロールプレーン番号に置き換えます。
  6. BareMetalHost オブジェクトを表示するには、次のコマンドを実行します。

    $ oc get bmh -A

    出力例

    NAME                          STATE                    CONSUMER                   ONLINE   ERROR   AGE
    control-plane-1.example.com   provisioned              control-plane-1            true             2h53m
    control-plane-2.example.com   externally provisioned   control-plane-2            true             5h53m
    control-plane-3.example.com   externally provisioned   control-plane-3            true             5h53m
    compute-1.example.com         provisioned              compute-1-ktmmx            true             5h53m
    compute-2.example.com         provisioned              compute-2-l2zmb            true             5h53m

  7. RHCOS のインストール後、BareMetalHost がクラスターに追加されていることを確認します。

    $ oc get nodes

    出力例

    NAME                           STATUS      ROLES     AGE   VERSION
    control-plane-1.example.com    available   master    4m2s  v1.26.9
    control-plane-2.example.com    available   master    141m  v1.26.9
    control-plane-3.example.com    available   master    141m  v1.26.9
    compute-1.example.com          available   worker    87m   v1.26.9
    compute-2.example.com          available   worker    87m   v1.26.9

    注記

    新しいコントロールプレーンノードの交換後、新しいノードで実行されている etcd Pod は crashloopback ステータスになります。詳細は、関連情報 セクションの「正常でない etcd メンバーの置き換え」を参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る