1.4. ベアメタルアセットの作成および変更

非推奨に関する注記: ベアメタルアセットを使用してベアメタルクラスターを作成する手順は非推奨になりました。推奨されるプロセスについては、オンプレミス環境でのクラスターの作成 を参照してください。

ベアメタルアセットとは、OpenShift Container Platform クラスターで実行されるように設定する仮想サーバーまたは物理サーバーです。Red Hat Advanced Cluster Management for Kubernetes は管理者が作成するベアメタルアセットに接続できます。ベアメタルアセットはマネージドクラスターにデプロイできます。

ハブクラスターのインベントリーコントローラーは、ベアメタルのアセットのインベントリーレコードを保持する BareMetalAsset というカスタムリソース定義 (CRD) を定義します。マネージドクラスターをプロビジョニングする場合、インベントリーコントローラーは、マネージドクラスター内にある対応する BareMetalHost リソースと、BareMetalAsset インベントリーレコードを調整します。

Red Hat Advanced Cluster Management は BareMetalAsset CR を使用して、設定管理データベース (CMDB) または同様のシステムで入力したレコードに基づいてクラスターハードウェアをプロビジョニングします。外部ツールまたは自動化は CMDB をポーリングし、Red Hat Advanced Cluster Management API を使用して、マネージドクラスターでの後続のデプロイメントに備え、対応する BareMetalAssetSecret リソースをハブクラスターに作成します。

以下の手順を使用して、Red Hat Advanced Cluster Management が管理するクラスターのベアメタルアセットを作成して管理します。

1.4.1. 前提条件

ベアメタルアセットを作成する前に、以下の前提条件を満たす必要があります。

  • OpenShift Container Platform バージョン 4.6 以降に、Red Hat Advanced Cluster Management ハブクラスターをデプロイしている。
  • Red Hat Advanced Cluster Management ハブクラスターがベアメタルアセットに接続できるようにアクセスを設定している。
  • ベアメタルアセット、およびベアメタルアセットへのログインまたは管理に必要なパーミッションを指定したログイン認証情報を設定している。

    注記: ベアメタルアセットの認証情報には、管理者が提供するアセットの項目 (ユーザー名、パスワード、 Baseboard Management Controller (BMC) アドレス の起動 NIC MAC アドレス) が含まれます。

1.4.2. コンソールを使用したベアメタルアセットの作成

Red Hat Advanced Cluster Management for Kubernetes コンソールを使用してベアメタルアセットを作成するには、Infrastructure > Bare metal assets に移動します。ベアメタルアセットの作成 を選択して、コンソールで手順を実行します。

ベアメタルアセットの名前は、クラスターの作成時に識別されます。

ベアメタルアセット、ベアメタルのマネージドクラスター、および関連シークレットは同じ namespace に配置する必要があります。

+ この namespace にアクセスできるユーザーは、クラスターの作成時にこのアセットをクラスターに関連付けることができます。

ベースボード管理コントローラー (BMC) アドレスは、ホストとの通信を可能にするコントローラーです。以下のプロトコルがサポートされます。

ブート NIC MAC アドレスは、ホストのネットワーク接続された NIC の MAC アドレスで、ベアメタルアセットにホストをプロビジョニングするために使用されます。

ベアメタルでのクラスターの作成 に進んでください。

1.4.3. CLI を使用したベアメタルアセットの作成

BareMetalAsset CR を使用して、クラスター内の特定の namespace のベアメタルアセットを作成します。各 BareMetalAsset には、同じ namespace に対応の Secret があり、そこには BMC (Baseboard Management Controller) 認証情報およびシークレット名が含まれます。

1.4.3.1. 前提条件

  • ハブクラスターに Red Hat Advanced Cluster Management for Kubernetes のハブクラスターをインストールしている。
  • Red Hat OpenShift CLI (oc) をインストールしている。
  • cluster-admin 権限を持つユーザーとしてログインしている。

1.4.3.2. ベアメタルノードの作成

  1. 環境にベアメタルアセットをインストールしてプロビジョニングします。
  2. BMC の電源をオンにし、ハードウェアの IPMI または Redfish BMC アドレスおよび MAC アドレスを書き留めます。
  3. 以下の BareMetalAsset および Secret CR を作成し、ファイルを baremetalasset-cr.yaml として保存します。

    apiVersion: inventory.open-cluster-management.io/v1alpha1
    kind: BareMetalAsset
    metadata:
      name: <baremetalasset-machine>
      namespace: <baremetalasset-namespace>
    spec:
      bmc:
        address: ipmi://<out_of_band_ip>:<port>
        credentialsName: baremetalasset-machine-secret
      bootMACAddress: "00:1B:44:11:3A:B7"
      hardwareProfile: "hardwareProfile"
      role: "<role>"
      clusterName: "<cluster name>"
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: baremetalasset-machine-secret
    type: Opaque
    data:
      username: <username>
      password: <password>
    • baremetalasset-machine は、ベアメタルアセットが置かれているマシンの名前に置き換えます。作成時に、マネージドクラスターの BareMetalHost は、ハブクラスター上の対応する BareMetalAsset と同じ名前を取得します。BareMetalHost 名は常に対応する BareMetalAsset 名と一致している必要があります。
    • baremetalasset-namespace は、ベアメタルアセットが作成されるクラスター namespace に置き換えます。
    • out_of_band_ip および port は、ベアメタルアセットのアドレスおよびポートに置き換えます。Redfish アドレス設定には、redfish://<out-of-band-ip>/redfish/v1/Systems/1 のアドレス形式を使用します。
    • role は、worker か、master に置き換えるか、またはマシンのロールの種類に応じて空のままにします。role 設定を使用して、クラスター内の固有のマシンロールタイプに、ベアメタルアセットを一致させます。指定のマシンロールタイプの BareMetalAsset リソースは、別のロールを満たすためには使用しないでください。role の値は、キーが inventory.open-cluster-management.io/role のラベル値として使用されます。これにより、クラスター管理アプリケーションまたはユーザーは、特定のロール向けに用意されたインベントリーについてクエリーできます。
    • cluster_name は、クラスターの名前に置き換えます。この名前は、クラスター管理アプリケーションまたはユーザーが、特定のクラスターに関連付けられたインベントリーのクエリーに使用します。クラスターデプロイメントに追加せずにベアメタルアセットを作成するには、この値を空欄のままにします。
    • username は、シークレットのユーザー名に置き換えます。
    • password は、シークレットのパスワードに置き換えます。
  4. 以下のコマンドを実行して BareMetalAsset CR を作成します。

    oc create -f baremetalasset-cr.yaml
  5. BareMetalAsset が正常に作成されていることを確認します。

    oc get baremetalassets -A

    出力例:

    NAMESPACE   		    NAME                              AGE
    ocp-example-bm      baremetalasset-machine   			    2m
    ocp-example-bm      csv-f24-h27-000-r630-master-1-1   4d21h

1.4.4. コンソールを使用したベアメタルアセットの一括インポート

CSV 形式の一覧を使用して、Red Hat Advanced Cluster Management for Kubernetes コンソールでベアメタルアセットを一括インポートできます。

1.4.4.1. 前提条件

  • 1 つ以上のスポーククラスターを管理するハブクラスターに Red Hat Advanced Cluster Management をインストールしている。
  • OpenShift Container Platform CLI (oc) をインストールしている。
  • cluster-admin 権限を持つユーザーとしてログインしている。

1.4.4.2. アセットのインポート

ベアメタルアセットをインポートするには、以下の手順を実行します。

  1. Red Hat Advanced Cluster Management コンソールのナビゲーションメニューで Cluster management > Bare metal assets を選択します。
  2. Import assets を選択し、ベアメタルアセットのデータを含む CSV ファイルをインポートします。CSV ファイルには、以下のヘッダーコラムが必要です。

    hostName, hostNamespace, bmcAddress, macAddress, role (optional), username, password

1.4.5. ベアメタルアセットの変更

ベアメタルアセットの設定を変更する必要がある場合は、以下の手順を実行します。

  1. Red Hat Advanced Cluster Management for Kubernetes コンソールのナビゲーションで、Infrastructure > Bare metal assets を選択します。
  2. テーブルで変更するアセットのオプションメニューを選択します。
  3. Edit asset を選択します。

1.4.6. ベアメタルアセットの削除

ベアメタルアセットがどのクラスターにも使用されなくなった場合は、利用可能なベアメタルアセット一覧から削除できます。使用されていないアセットを削除することで、利用可能なアセット一覧が簡素化されて、対象のアセットが誤って選択されないようにします。

コンソールでベアメタルアセットを削除するには、以下の手順を実行します。

  1. Red Hat Advanced Cluster Management for Kubernetes コンソールのナビゲーションで、Infrastructure > Bare metal assets を選択します。
  2. テーブルで削除するアセットのオプションメニューを選択します。
  3. Delete asset を選択します。

1.4.7. REST API を使用したベアメタルアセットの作成

OpenShift Container Platform REST API を使用して、Red Hat Advanced Cluster Management クラスターで使用するベアメタルアセットを管理できます。これは、お使いの環境でベアメタルアセットを管理するために別の CMDB アプリケーションまたはデータベースがある場合に役立ちます。

1.4.7.1. 前提条件

  • ハブクラスターに Red Hat Advanced Cluster Management for Kubernetes のハブクラスターをインストールしている。
  • OpenShift Container Platform CLI (oc) をインストールしている。
  • cluster-admin 権限を持つユーザーとしてログインしている。

1.4.7.2. ベアメタルノードの作成

REST API を使用してベアメタルアセットを作成するには、以下を実行します。

  1. ハブクラスターのログイントークンを取得して、コマンドラインでクラスターにログインします。以下は例になります。

    oc login --token=<login_token> --server=https://<hub_cluster_api_url>:6443
  2. 以下の curl コマンドを、クラスターに追加するベアメタルアセットの詳細を使用して変更し、コマンドを実行します。

    $ curl --location --request POST '<hub_cluster_api_url>:6443/apis/inventory.open-cluster-management.io/v1alpha1/namespaces/<bare_metal_asset_namespace>/baremetalassets?fieldManager=kubectl-create' \
    --header 'Authorization: Bearer <login_token>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "apiVersion": "inventory.open-cluster-management.io/v1alpha1",
        "kind": "BareMetalAsset",
        "metadata": {
            "name": "<baremetalasset_name>",
            "namespace": "<bare_metal_asset_namespace>"
        },
        "spec": {
            "bmc": {
                "address": "ipmi://<ipmi_address>",
                "credentialsName": "<credentials-secret>"
            },
            "bootMACAddress": "<boot_mac_address>",
            "clusterName": "<cluster_name>",
            "hardwareProfile": "hardwareProfile",
            "role": "worker"
        }
    }'
    • baremetalasset-name は、ベアメタルアセットの名前に置き換えます。作成時に、マネージドクラスターの BareMetalHost は、ハブクラスター上の対応する BareMetalAsset と同じ名前を取得します。BareMetalHost 名は常に対応する BareMetalAsset 名と一致している必要があります。
    • baremetalasset-namespace は、ベアメタルアセットが作成されるクラスター namespace に置き換えます。
    • out_of_band_ip および port は、ベアメタルアセットのアドレスおよびポートに置き換えます。Redfish アドレス設定には、redfish://<out-of-band-ip>/redfish/v1/Systems/1 のアドレス形式を使用します。
    • role は、worker か、master に置き換えるか、またはマシンのロールの種類に応じて空のままにします。role 設定を使用して、クラスター内の固有のマシンロールタイプに、ベアメタルアセットを一致させます。指定のマシンロールタイプの BareMetalAsset リソースは、別のロールを満たすためには使用しないでください。role の値は、キーが inventory.open-cluster-management.io/role のラベル値として使用されます。これにより、クラスター管理アプリケーションまたはユーザーは、特定のロール向けに用意されたインベントリーについてクエリーできます。
    • cluster_name は、クラスターの名前に置き換えます。この名前は、クラスター管理アプリケーションまたはユーザーが、特定のクラスターに関連付けられたインベントリーのクエリーに使用します。クラスターデプロイメントに追加せずにベアメタルアセットを作成するには、この値を空欄のままにします。

      注記: 以前の curl コマンドでは、API サーバーが HTTPS 経由で提供され、安全にアクセスされることを前提としています。開発またはテスト環境では、--insecure パラメーターを指定できます。

ヒント: --v=9oc コマンドに追加して、結果となるアクションの出力を未加工で表示できます。これは、oc コマンドの REST API ルートの認定に役立ちます。