6.6.6. ノード、ベアメタルホスト、マシンの関連付け


マシンを作成し、それを新しい BareMetalHost オブジェクトおよびノードに関連付けることで、新しいコントロールプレーンノードの作成を続行します。

手順

  1. 次のコマンドを実行して、コントロールプレーンノードの providerID を取得します。

    $ oc get -n openshift-machine-api baremetalhost -l installer.openshift.io/role=control-plane -ojson | jq -r '.items[] | "baremetalhost:///openshift-machine-api/" + .metadata.name + "/" + .metadata.uid'

    出力例

    baremetalhost:///openshift-machine-api/master-00/6214c5cf-c798-4168-8c78-1ff1a3cd2cb4
    baremetalhost:///openshift-machine-api/master-01/58fb60bd-b2a6-4ff3-a88d-208c33abf954
    baremetalhost:///openshift-machine-api/master-02/dc5a94f3-625b-43f6-ab5a-7cc4fc79f105

  2. 次のコマンドを実行して、ラベルのクラスター情報を取得します。

    $ oc get machine -n openshift-machine-api \
        -l machine.openshift.io/cluster-api-machine-role=master \
        -L machine.openshift.io/cluster-api-cluster

    出力例

    NAME                           PHASE   TYPE  REGION  ZONE  AGE  CLUSTER-API-CLUSTER
    ci-op-jcp3s7wx-ng5sd-master-0  Running                     10h  ci-op-jcp3s7wx-ng5sd
    ci-op-jcp3s7wx-ng5sd-master-1  Running                     10h  ci-op-jcp3s7wx-ng5sd
    ci-op-jcp3s7wx-ng5sd-master-2  Running                     10h  ci-op-jcp3s7wx-ng5sd

  3. 次のような yaml ファイルを作成して、新しいコントロールプレーンノードの Machine オブジェクトを作成します。

    apiVersion: machine.openshift.io/v1beta1
    kind: Machine
    metadata:
      annotations:
        metal3.io/BareMetalHost: openshift-machine-api/<new_control_plane_machine> 
    1
    
      finalizers:
        - machine.machine.openshift.io
      labels:
        machine.openshift.io/cluster-api-cluster: <cluster_api_cluster> 
    2
    
        machine.openshift.io/cluster-api-machine-role: master
        machine.openshift.io/cluster-api-machine-type: master
      name: <new_control_plane_machine> 
    3
    
      namespace: openshift-machine-api
    spec:
      metadata: {}
      providerID: <provider_id> 
    4
    
      providerSpec:
        value:
          apiVersion: baremetal.cluster.k8s.io/v1alpha1
          hostSelector: {}
          image:
            checksum: ""
            url: ""
          kind: BareMetalMachineProviderSpec
          userData:
            name: master-user-data-managed

    各項目の説明:

    <new_control_plane_machine>
    新しいマシンの名前を指定します。これは、以前に削除されたマシンの名前と同じにすることができます。
    <cluster_api_cluster>
    前の手順の出力に示されている、他のコントロールプレーンマシンの CLUSTER-API-CLUSTER 値を指定します。
    <provider_id>
    前の手順の出力に表示されている、新しいベアメタルホストの providerID 値を指定します。

    次の警告が想定されます。

    Warning: metadata.finalizers: "machine.machine.openshift.io": prefer a domain-qualified finalizer name to avoid accidental conflicts with other finalizer writers
  4. 単一の bash シェルセッションで次の手順を実行して、新しいコントロールプレーンノードと Machine オブジェクトを BareMetalHost オブジェクトに関連付けます。

    1. 次のコマンドを実行して、NEW_NODE_NAME 変数を定義します。

      $ NEW_NODE_NAME=<new_node_name>

      <new_node_name> は、新しいコントロールプレーンノードの名前に置き換えます。

    2. 次のコマンドを実行して、NEW_MACHINE_NAME 変数を定義します。

      $ NEW_MACHINE_NAME=<new_machine_name>

      <new_machine_name> は、新しいマシンの名前に置き換えます。

    3. 以下のコマンドを実行して BMH_UID を定義し、これを新しいノードの BareMetalHost オブジェクトから抽出します。

      $ BMH_UID=$(oc get -n openshift-machine-api bmh $NEW_NODE_NAME -ojson | jq -r .metadata.uid)
      $ echo $BMH_UID
    4. 次のコマンドを実行して、ベアメタルホストに consumerRef オブジェクトをパッチ適用します。

      $ oc patch -n openshift-machine-api bmh $NEW_NODE_NAME --type merge --patch '{"spec":{"consumerRef":{"apiVersion":"machine.openshift.io/v1beta1","kind":"Machine","name":"'$NEW_MACHINE_NAME'","namespace":"openshift-machine-api"}}}'
    5. 次のコマンドを実行して、新しいノードに providerID 値をパッチ適用します。

      $ oc patch node $NEW_NODE_NAME --type merge --patch '{"spec":{"providerID":"baremetalhost:///openshift-machine-api/'$NEW_NODE_NAME'/'$BMH_UID'"}}'
    6. 次のコマンドを実行して、providerID 値を確認します。

      $ oc get node -l node-role.kubernetes.io/control-plane -ojson | jq -r '.items[] | .metadata.name + "  " + .spec.providerID'
  5. 次のコマンドを実行して、BareMetalHost オブジェクトの poweredOn ステータスを true に設定します。

    $ oc patch -n openshift-machine-api bmh $NEW_NODE_NAME --subresource status --type json -p '[{"op":"replace","path":"/status/poweredOn","value":true}]'
  6. 次のコマンドを実行して、BareMetalHost オブジェクトの poweredOn ステータスを確認します。

    $ oc get bmh -n openshift-machine-api -ojson | jq -r '.items[] | .metadata.name + "   PoweredOn:" +  (.status.poweredOn | tostring)'
  7. 次のコマンドを実行して、BareMetalHost オブジェクトのプロビジョニング状態を確認します。

    $ oc get bmh -n openshift-machine-api -ojson | jq -r '.items[] | .metadata.name + "   ProvisioningState:" +  .status.provisioning.state'
    重要

    プロビジョニング状態が unmanaged でない場合は、次のコマンドを実行してプロビジョニング状態を変更します。

    $ oc patch -n openshift-machine-api bmh $NEW_NODE_NAME --subresource status --type json -p '[{"op":"replace","path":"/status/provisioning/state","value":"unmanaged"}]'
  8. 次のコマンドを実行して、マシンの状態を Provisioned に設定します。

    $ oc patch -n openshift-machine-api machines $NEW_MACHINE_NAME -n openshift-machine-api --subresource status --type json -p '[{"op":"replace","path":"/status/phase","value":"Provisioned"}]'
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る