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 を使用して、マネージドクラスターでの後続のデプロイメントに備え、対応する BareMetalAsset
と Secret
リソースをハブクラスターに作成します。
以下の手順を使用して、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) アドレスは、ホストとの通信を可能にするコントローラーです。以下のプロトコルがサポートされます。
- IPMI。詳細は、IPMI 2.0 Specification を参照してください。
- iDRAC。詳細は、Support for Integrated Dell Remote Access Controller 9 (iDRAC9) を参照してください。
- iRMC。詳細は、Data Sheet: FUJITSU Software ServerView Suite integrated Remote Management Controller - iRMC S5 を参照してください。
- Redfish。詳細は、Redfish specification を参照してください。
ブート 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. ベアメタルノードの作成
- 環境にベアメタルアセットをインストールしてプロビジョニングします。
- BMC の電源をオンにし、ハードウェアの IPMI または Redfish BMC アドレスおよび MAC アドレスを書き留めます。
以下の
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
は、シークレットのパスワードに置き換えます。
-
以下のコマンドを実行して
BareMetalAsset
CR を作成します。oc create -f baremetalasset-cr.yaml
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. アセットのインポート
ベアメタルアセットをインポートするには、以下の手順を実行します。
- Red Hat Advanced Cluster Management コンソールのナビゲーションメニューで Cluster management > Bare metal assets を選択します。
Import assets を選択し、ベアメタルアセットのデータを含む CSV ファイルをインポートします。CSV ファイルには、以下のヘッダーコラムが必要です。
hostName, hostNamespace, bmcAddress, macAddress, role (optional), username, password
1.4.5. ベアメタルアセットの変更
ベアメタルアセットの設定を変更する必要がある場合は、以下の手順を実行します。
- Red Hat Advanced Cluster Management for Kubernetes コンソールのナビゲーションで、Infrastructure > Bare metal assets を選択します。
- テーブルで変更するアセットのオプションメニューを選択します。
- Edit asset を選択します。
1.4.6. ベアメタルアセットの削除
ベアメタルアセットがどのクラスターにも使用されなくなった場合は、利用可能なベアメタルアセット一覧から削除できます。使用されていないアセットを削除することで、利用可能なアセット一覧が簡素化されて、対象のアセットが誤って選択されないようにします。
コンソールでベアメタルアセットを削除するには、以下の手順を実行します。
- Red Hat Advanced Cluster Management for Kubernetes コンソールのナビゲーションで、Infrastructure > Bare metal assets を選択します。
- テーブルで削除するアセットのオプションメニューを選択します。
- 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 を使用してベアメタルアセットを作成するには、以下を実行します。
ハブクラスターのログイントークンを取得して、コマンドラインでクラスターにログインします。以下は例になります。
oc login --token=<login_token> --server=https://<hub_cluster_api_url>:6443
以下の 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=9
を oc
コマンドに追加して、結果となるアクションの出力を未加工で表示できます。これは、oc
コマンドの REST API ルートの認定に役立ちます。