4.7. Bare Metal Operator を使用した設定
ベアメタルホストに OpenShift Container Platform をデプロイする場合、プロビジョニングの前後にホストに変更を加える必要がある場合があります。これには、ホストのハードウェア、ファームウェア、ファームウェアの詳細の検証が含まれます。また、ディスクのフォーマットや、変更可能なファームウェア設定の変更も含まれます。
Bare Metal Operator (BMO) を使用して、クラスター内のベアメタルホストをプロビジョニング、管理、検査できます。BMO は次の操作を完了できます。
- 特定のイメージを使用したクラスターへのベアメタルホストのプロビジョニング
- ホストをオンまたはオフにします。
- ホストのハードウェアの詳細を検査し、ベアメタルホストへ報告する
- ホストのファームウェアを特定のバージョンにアップグレードまたはダウングレードする
- ファームウェアを検査し、BIOS を設定します。
- ホストをプロビジョニングする前または後に、ホストのディスクの内容をクリーンアップします。
BMO はこれらのタスクを完了するために次のリソースを使用します。
-
BareMetalHost
-
HostFirmwareSettings
-
FirmwareSchema
-
HostFirmwareComponents
-
HostUpdatePolicy
BMO は、各ベアメタルホストを BareMetalHost
カスタムリソース定義のインスタンスにマッピングすることにより、クラスター内の物理ホストのインベントリーを維持します。各 BareMetalHost
リソースには、ハードウェア、ソフトウェア、およびファームウェアの詳細が含まれています。BMO は、クラスター内のベアメタルホストを継続的に検査して、各 BareMetalHost
リソースが対応するホストのコンポーネントを正確に詳述していることを確認します。
BMO は、HostFirmwareSettings
リソース、FirmwareSchema
リソース、および HostFirmwareComponents
リソースを使用して、ファームウェア仕様の詳細を指定し、ベアメタルホストのファームウェアをアップグレードまたはダウングレードします。
BMO は、Ironic API サービスを使用してクラスター内のベアメタルホストと接続します。Ironic サービスは、ホスト上のベースボード管理コントローラー (BMC) を使用して、マシンと接続します。
BMO の HostUpdatePolicy
を使用すると、ホストのプロビジョニング後に、ベアメタルホストのファームウェア設定、BMC 設定、または BIOS 設定へのライブ更新を有効または無効にできます。デフォルトでは、BMO はライブ更新を無効にします。
4.7.1. Bare Metal Operator のアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Operator (BMO) は、次のリソースを使用して、クラスター内のベアメタルホストをプロビジョニング、管理、検査します。次の図は、これらのリソースのアーキテクチャーを示しています。
BareMetalHost
BareMetalHost
リソースは、物理ホストとそのプロパティーを定義します。ベアメタルホストをクラスターにプロビジョニングするときは、そのホストの BareMetalHost
リソースを定義する必要があります。ホストの継続的な管理のために、BareMetalHost
リソースの情報を確認したり、この情報を更新したりできます。
BareMetalHost
リソースには、次のようなプロビジョニング情報が含まれます。
- オペレーティングシステムのブートイメージやカスタム RAM ディスクなどのデプロイメント仕様
- プロビジョニング状態
- ベースボード管理コントローラー (BMC) アドレス
- 目的の電源状態
BareMetalHost
リソースには、次のようなハードウェア情報が含まれます。
- CPU 数
- NIC の MAC アドレス
- ホストのストレージデバイスのサイズ
- 現在の電源状態
HostFirmwareSettings
HostFirmwareSettings
リソースを使用して、ホストのファームウェア設定を取得および管理できます。ホストが Available
状態に移行すると、Ironic サービスはホストのファームウェア設定を読み取り、HostFirmwareSettings
リソースを作成します。BareMetalHost
リソースと HostFirmwareSettings
リソースの間には 1 対 1 のマッピングがあります。
HostFirmwareSettings
リソースを使用して、ホストのファームウェア仕様を調べたり、ホストのファームウェア仕様を更新したりできます。
HostFirmwareSettings
リソースの spec
フィールドを編集するときは、ベンダーファームウェアに固有のスキーマに従う必要があります。このスキーマは、読み取り専用の FirmwareSchema
リソースで定義されます。
FirmwareSchema
ファームウェア設定は、ハードウェアベンダーやホストモデルによって異なります。FirmwareSchema
リソースは、各ホストモデル上の各ファームウェア設定のタイプおよび制限が含まれる読み取り専用リソースです。データは、Ironic サービスを使用して BMC から直接取得されます。FirmwareSchema
リソースを使用すると、HostFirmwareSettings
リソースの spec
フィールドに指定できる有効な値を特定できます。
スキーマが同じであれば、FirmwareSchema
リソースは多くの BareMetalHost
リソースに適用できます。
HostFirmwareComponents
Metal3 は、BIOS およびベースボード管理コントローラー (BMC) ファームウェアのバージョンを記述する HostFirmwareComponents
リソースを提供します。HostFirmwareComponents
リソースの spec
フィールドを編集することで、ホストのファームウェアを特定のバージョンにアップグレードまたはダウングレードできます。これは、特定のファームウェアバージョンに対してテストされた検証済みパターンを使用してデプロイする場合に便利です。
HostUpdatePolicy
HostUpdatePolicy
リソースを使用すると、ベアメタルホストのファームウェア設定、BMC 設定、または BIOS 設定のライブ更新を有効または無効にできます。デフォルトでは、各ベアメタルホストの HostUpdatePolicy
リソースにより、ホストへの更新がプロビジョニング中だけに制限されます。ホストをプロビジョニングした後、ファームウェア設定、BMC 設定、または BIOS 設定を更新する場合は、ホストの HostUpdatePolicy
リソースを変更する必要があります。
4.7.2. BareMetalHost リソースについて リンクのコピーリンクがクリップボードにコピーされました!
Metal3 で、物理ホストとそのプロパティーを定義する BareMetalHost
リソースの概念が導入されました。BareMetalHost
リソースには、2 つのセクションが含まれます。
-
BareMetalHost
spec -
BareMetalHost
status
4.7.2.1. BareMetalHost spec リンクのコピーリンクがクリップボードにコピーされました!
BareMetalHost
リソースの spec
セクションは、ホストの必要な状態を定義します。
パラメーター | 説明 |
---|---|
|
プロビジョニングおよびプロビジョニング解除時の自動クリーニングを有効または無効にするインターフェイス。 |
bmc: address: credentialsName: disableCertificateVerification:
|
|
| ホストのプロビジョニングに使用する NIC の MAC アドレス。 |
|
ホストのブートモード。デフォルトは |
|
ホストを使用している別のリソースへの参照。別のリソースが現在ホストを使用していない場合は、空になることがあります。たとえば、 |
| ホストの特定に役立つ、人間が提供した文字列。 |
| ホストのプロビジョニングとプロビジョニング解除が外部で管理されるかどうかを示すブール値。設定される場合:
|
|
ベアメタルホストの BIOS 設定に関する情報が含まれます。現在、
|
image: url: checksum: checksumType: format:
|
|
| ネットワーク設定データおよびその namespace が含まれるシークレットへの参照。したがって、ホストが起動してネットワークをセットアップする前にホストに接続することができます。 |
|
ホストの電源を入れる ( |
raid: hardwareRAIDVolumes: softwareRAIDVolumes:
| (オプション) ベアメタルホストの RAID 設定に関する情報が含まれます。指定しない場合は、現在の設定を保持します。 注記 OpenShift Container Platform 4.19 は、BMC のインストールドライブ上で以下のハードウェア RAID をサポートします。
OpenShift Container Platform 4.19 は、インストールドライブ上のソフトウェア RAID をサポートしていません。 次の構成設定を参照してください。
spec: raid: hardwareRAIDVolume: []
ドライバーが RAID に対応していないことを示すエラーメッセージが表示された場合は、 |
|
|
4.7.2.2. BareMetalHost status リンクのコピーリンクがクリップボードにコピーされました!
BareMetalHost
status は、ホストの現在の状態を表し、テスト済みの認証情報、現在のハードウェアの詳細などの情報が含まれます。
パラメーター | 説明 |
---|---|
| シークレットおよびその namespace の参照で、システムが動作中と検証できるベースボード管理コントローラー (BMC) 認証情報のセットが保持されています。 |
| プロビジョニングバックエンドが報告する最後のエラーの詳細 (ある場合)。 |
| ホストがエラー状態になった原因となった問題のクラスを示します。エラータイプは以下のとおりです。
|
|
|
hardware: firmware:
| BIOS ファームウェア情報が含まれます。たとえば、ハードウェアベンダーおよびバージョンなどです。 |
|
|
hardware: ramMebibytes:
| ホストのメモリー容量 (MiB 単位)。 |
|
|
hardware: systemVendor: manufacturer: productName: serialNumber:
|
ホストの |
| ホストのステータスの最終更新時のタイムスタンプ。 |
| サーバーのステータス。ステータスは以下のいずれかになります。
|
| ホストの電源が入っているかどうかを示すブール値。 |
|
|
| プロビジョニングバックエンドに送信された BMC 認証情報の最後のセットを保持するシークレットおよびその namespace への参照。 |
4.7.3. BareMetalHost リソースの取得 リンクのコピーリンクがクリップボードにコピーされました!
BareMetalHost
リソースには、物理ホストのプロパティーが含まれます。物理ホストのプロパティーをチェックするには、その BareMetalHost
リソースを取得する必要があります。
手順
BareMetalHost
リソースの一覧を取得します。oc get bmh -n openshift-machine-api -o yaml
$ oc get bmh -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記oc get
コマンドで、bmh
の長い形式として、baremetalhost
を使用できます。ホストのリストを取得します。
oc get bmh -n openshift-machine-api
$ oc get bmh -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のホストの
BareMetalHost
リソースを取得します。oc get bmh <host_name> -n openshift-machine-api -o yaml
$ oc get bmh <host_name> -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
<host_name>
はホストの名前です。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.4. BareMetalHost リソースの編集 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターをベアメタルにデプロイした後、ノードの BareMetalHost
リソースを編集する必要がある場合があります。たとえば、次のような例が考えられます。
- Assisted Installer を使用してクラスターをデプロイし、ベースボード管理コントローラー (BMC) のホスト名または IP アドレスを追加または編集する必要がある。
- ノードをプロビジョニング解除せずに、あるクラスターから別のクラスターに移動する必要がある。
前提条件
-
ノードが
Provisioned
、ExternallyProvisioned
、またはAvailable
状態であることを確認する。
手順
ノードのリストを取得します。
oc get bmh -n openshift-machine-api
$ oc get bmh -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードの
BareMetalHost
リソースを編集する前に、次のコマンドを実行してノードを Ironic からデタッチします。oc annotate baremetalhost <node_name> -n openshift-machine-api 'baremetalhost.metal3.io/detached=true'
$ oc annotate baremetalhost <node_name> -n openshift-machine-api 'baremetalhost.metal3.io/detached=true'
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<node_name>
はノード名に置き換えてください。
次のコマンドを実行して、
BareMetalHost
リソースを編集します。oc edit bmh <node_name> -n openshift-machine-api
$ oc edit bmh <node_name> -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ノードを Ironic に再アタッチします。
oc annotate baremetalhost <node_name> -n openshift-machine-api 'baremetalhost.metal3.io/detached'-
$ oc annotate baremetalhost <node_name> -n openshift-machine-api 'baremetalhost.metal3.io/detached'-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.5. BareMetalHost リソースを削除する際の遅延のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Operator (BMO) が BareMetalHost
リソースを削除すると、Ironic はクリーニングと呼ばれるプロセスでベアメタルホストのプロビジョニングを解除します。クリーニングが失敗すると、Ironic はクリーニングプロセスを 3 回再試行します。これが遅延の原因となります。クリーニングプロセスが成功せず、ベアメタルホストのプロビジョニングステータスが deleting 状態のまま無期限に残る原因となります。このような場合は、次の手順に従ってクリーニングプロセスを無効にしてください。
BareMetalHost
リソースからファイナライザーを削除しないでください。
手順
- クリーニングプロセスが失敗して再開された場合は、完了するまで待機します。これには約 5 分かかる場合があります。
-
プロビジョニングステータスが deleting 状態のままの場合は、
BareMetalHost
リソースを変更し、automatedCleaningMode
フィールドをdisabled
に設定して、クリーニングプロセスを無効にします。
詳細は、「BareMetalHost リソースの編集」を参照してください。
4.7.6. ブータブルでない ISO をベアメタルノードにアタッチする リンクのコピーリンクがクリップボードにコピーされました!
DataImage
リソースを使用すると、ブータブルでない汎用の ISO 仮想メディアイメージを、プロビジョニングされたノードにアタッチできます。リソースを適用すると、起動後にオペレーティングシステムから ISO イメージにアクセスできるようになります。これは、オペレーティングシステムをプロビジョニングした後、ノードが初めて起動する前にノードを設定する場合に便利です。
前提条件
- この機能をサポートするために、ノードが Redfish またはそれから派生したドライバーを使用している。
-
ノードが
Provisioned
またはExternallyProvisioned
状態である。 -
name
が、BareMetalHost
リソースで定義されているノードの名前と同じである。 -
ISO イメージへの有効な
url
がある。
手順
DataImage
リソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
DataImage
リソースをファイルに保存します。vim <node_name>-dataimage.yaml
$ vim <node_name>-dataimage.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
DataImage
リソースを適用します。oc apply -f <node_name>-dataimage.yaml -n <node_namespace>
$ oc apply -f <node_name>-dataimage.yaml -n <node_namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- namespace が
BareMetalHost
リソースの namespace と一致するように<node_namespace>
を置き換えます。たとえば、openshift-machine-api
です。
ノードを再起動します。
注記ノードを再起動するには、
reboot.metal3.io
アノテーションを割り当てるか、BareMetalHost
リソースでonline
ステータスをリセットします。ベアメタルノードを強制的に再起動すると、ノードの状態がしばらくの間NotReady
に変わります。具体的には、5 分以上変わります。次のコマンドを実行して、
DataImage
リソースを表示します。oc get dataimage <node_name> -n openshift-machine-api -o yaml
$ oc get dataimage <node_name> -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.7. 共有 NIC の NC-SI と DisablePowerOff の設定 リンクのコピーリンクがクリップボードにコピーされました!
Network Controller Sideband Interface (NC-SI) により、ベースボード管理コントローラー (BMC) は、Redfish、IPMI、ベンダー固有のインターフェイスなどのプロトコルを使用して、管理トラフィック用のシステムネットワークインターフェイスカード (NIC) をホストと共有できるようになります。DisablePowerOff
機能は、ハードな電源オフを防ぎ、ソフトリブートを行うことで BMC との接続を維持します。
前提条件
- NC-SI 対応のハードウェアと NIC。
- IP アドレスとネットワーク接続が設定された BMC。
- BMC への管理アクセス。
-
cluster-admin
特権で OpenShift クラスターにアクセスする。
手順
- 共有 NIC に対して NC-SI を有効にするように BMC を設定します。
次のいずれかのコマンドを実行し、Redfish または IPMI を使用して BMC の接続を確認します。
curl -k https://<bmc_ip>/redfish/v1/Systems/1
$ curl -k https://<bmc_ip>/redfish/v1/Systems/1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ipmitool -I lanplus -H <bmc_ip> -U <user> -P <pass> power status
$ ipmitool -I lanplus -H <bmc_ip> -U <user> -P <pass> power status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshift-machine-api
namespace のBareMetalHost
リソースを編集して、DisablePowerOff
機能を有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サポートされているプロトコルと BMC アドレス形式の詳細は、「BMC アドレス指定」セクションを参照してください。
次のコマンドを実行して変更を適用します。
oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、
BareMetalHost
のステータスを確認します。oc get baremetalhost example-host -n openshift-machine-api -o yaml
$ oc get baremetalhost example-host -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec
セクションにdisablePowerOff: true
があることを確認します。- ノード Pod を再起動してリブートをテストし、BMC 接続がアクティブなままであることを確認します。
-
BareMetalHost.spec.online=false
の設定を試みます。電源オフが無効であることを示すエラーが表示されて失敗するはずです。
4.7.8. HostFirmwareSettings リソースについて リンクのコピーリンクがクリップボードにコピーされました!
HostFirmwareSettings
リソースを使用して、ホストの BIOS 設定を取得および管理できます。ホストが Available
状態に移行すると、Ironic はホストの BIOS 設定を読み取り、HostFirmwareSettings
リソースを作成します。リソースには、ベースボード管理コントローラー (BMC) から返される完全な BIOS 設定が含まれます。BareMetalHost
リソースの firmware
フィールドは、ベンダーに依存しない 3 つのフィールドを返しますが、HostFirmwareSettings
リソースは、通常ホストごとにベンダー固有のフィールドの多数の BIOS 設定で構成されます。
HostFirmwareSettings
リソースには、以下の 2 つのセクションが含まれます。
-
HostFirmwareSettings
spec -
HostFirmwareSettings
status
ファームウェア設定の読み取りと変更は、ベンダーに依存しない Redfish プロトコル、Fujitsu iRMC、または HP iLO ベースのドライバーでのみサポートされます。
4.7.8.1. HostFirmwareSettings spec リンクのコピーリンクがクリップボードにコピーされました!
HostFirmwareSettings
リソースの spec
セクションは、ホストの BIOS の必要な状態を定義し、デフォルトでは空です。Ironic は spec.settings
セクションの設定を使用して、ホストが Preparing
状態の場合、ベースボード管理コントローラー (BMC) を更新します。FirmwareSchema
リソースを使用して、無効な名前と値のペアをホストに送信しないようにします。詳細は、「FirmwareSchema リソースについて」を参照してください。
例
spec: settings: ProcTurboMode: Disabled
spec:
settings:
ProcTurboMode: Disabled
- 1
- 前述の例では、
spec.settings
セクションには、ProcTurboMode
BIOS 設定をDisabled
に設定する名前/値のペアが含まれます。
status
セクションに一覧表示される整数パラメーターは文字列として表示されます。たとえば、"1"
と表示されます。spec.settings
セクションで整数を設定する場合、値は引用符なしの整数として設定する必要があります。たとえば、1
と設定します。
4.7.8.2. HostFirmwareSettings status リンクのコピーリンクがクリップボードにコピーされました!
status
は、ホストの BIOS の現在の状態を表します。
パラメーター | 説明 |
---|---|
|
|
status: schema: name: namespace: lastUpdated:
|
ファームウェア設定の
|
status: settings:
|
|
4.7.9. HostFirmwareSettings リソースの取得 リンクのコピーリンクがクリップボードにコピーされました!
HostFirmwareSettings
リソースには、物理ホストのベンダー固有の BIOS プロパティーが含まれます。物理ホストの BIOS プロパティーをチェックするには、その HostFirmwareSettings
リソースを取得する必要があります。
手順
次のコマンドを実行して、
HostFirmwareSettings
リソースの詳細なリストを取得します。oc get hfs -n openshift-machine-api -o yaml
$ oc get hfs -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記oc get
コマンドで、hfs
の長い形式としてhostfirmwaresettings
を使用できます。次のコマンドを実行して、
HostFirmwareSettings
リソースのリストを取得します。oc get hfs -n openshift-machine-api
$ oc get hfs -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、特定のホストの
HostFirmwareSettings
リソースを取得します。oc get hfs <host_name> -n openshift-machine-api -o yaml
$ oc get hfs <host_name> -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
<host_name>
はホストの名前です。
4.7.10. プロビジョニング済みホストの HostFirmwareSettings リソースの編集 リンクのコピーリンクがクリップボードにコピーされました!
プロビジョニング済みホストの HostFirmwareSettings
仕様を変更するには、次の操作を実行します。
-
ホストの
HostFirmwareSettings
リソースを編集します。 - マシンセットからホストを削除します。
- マシンセットをスケールダウンします。
- マシンセットをスケールアップして変更を反映させます。
ホストが provisioned
状態にある場合にのみ、ホストを編集できます (読み取り専用の値を除く)。externally provisioned
状態のホストは編集できません。
手順
次のコマンドを実行して、
HostFirmwareSettings
リソースのリストを取得します。oc get hfs -n openshift-machine-api
$ oc get hfs -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ホストの
HostFirmwareSettings
リソースを編集します。oc edit hfs <hostname> -n openshift-machine-api
$ oc edit hfs <hostname> -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <hostname>
はプロビジョニングされたホストの名前です。HostFirmwareSettings
リソースは、ターミナルのデフォルトエディターで開きます。次のコマンドを実行して、
spec.settings
セクションに名前と値のペアを追加します。例
spec: settings: name: value
spec: settings: name: value
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
FirmwareSchema
リソースを使用して、ホストで利用可能な設定を特定します。読み取り専用の値は設定できません。
- 変更を保存し、エディターを終了します。
次のコマンドを実行して、ホストのマシン名を取得します。
oc get bmh <hostname> -n openshift-machine name
$ oc get bmh <hostname> -n openshift-machine name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <hostname>
はホストの名前です。ターミナルのCONSUMER
フィールドの下にマシン名が表示されます。次のコマンドを実行して、マシンにアノテーションを付けてマシンセットから削除します。
oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api
$ oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
<machine_name>
は削除するマシンの名前です。次のコマンドを実行して、ノードのリストを取得し、ワーカーノードの数をカウントします。
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してマシンセットを取得します。
oc get machinesets -n openshift-machine-api
$ oc get machinesets -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、マシンセットをスケールします。
oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1>
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <machineset_name>
はマシンセットの名前です。<n-1>
は減少させたワーカーノードの数です。ホストが
Available
状態になったら、次のコマンドを実行してマシンセットをスケールアップし、HostFirmwareSettings
リソースの変更を反映します。oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n>
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <machineset_name>
はマシンセットの名前です。<n>
はワーカーノードの数です。
4.7.11. HostFirmwareSettings リソースへのライブ更新の実行 リンクのコピーリンクがクリップボードにコピーされました!
ワークロードの実行を開始した後、HostFirmareSettings
リソースに対してライブ更新を実行できます。ライブ更新では、ホストのプロビジョニング解除と再プロビジョニングはトリガーされません。
ホストのライブ更新はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
-
HostUpdatePolicy
リソースのfirmwareSettings
パラメーターがonReboot
に設定されている。
手順
次のコマンドを実行して、
HostFirmwareSettings
リソースを更新します。oc patch hostfirmwaresettings <hostname> --type merge -p \ '{"spec": {"settings": {"<name>": "<value>"}}}'
$ oc patch hostfirmwaresettings <hostname> --type merge -p \
1 '{"spec": {"settings": {"<name>": "<value>"}}}'
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ハードウェアがサポートする設定と、更新できる設定および値を確認するには、
FirmwareSchema
リソースを取得します。読み取り専用の値を更新することはできません。また、FirmwareSchema
リソースを更新することもできません。oc edit <hostname> hostfirmwaresettings -n openshift-machine-api
コマンドを使用してHostFirmwareSettings
リソースを更新することもできます。次のコマンドを実行して、ノードをスケジューリング対象から外してドレインします。
oc drain <node_name> --force
$ oc drain <node_name> --force
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<node_name>
はノード名に置き換えてください。
次のコマンドを実行して、ホストの電源を 5 分間オフにします。
oc patch bmh <hostname> --type merge -p '{"spec": {"online": false}}'
$ oc patch bmh <hostname> --type merge -p '{"spec": {"online": false}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このステップにより、デーモンセットまたはコントローラーが、ホスト上で実行されている可能性のあるインフラストラクチャー Pod をオフラインとしてマークし、残りのホストが受信リクエストを処理するようになります。
5 分後、次のコマンドを実行してホストの電源をオンにします。
oc patch bmh <hostname> --type merge -p '{"spec": {"online": true}}'
$ oc patch bmh <hostname> --type merge -p '{"spec": {"online": true}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービス操作が開始し、Bare Metal Operator (BMO) が
BareMetalHost
のoperationalStatus
パラメーターをservicing
に設定します。BMO は、リソースを更新した後、operationalStatus
パラメーターをOK
に更新します。エラーが発生した場合、BMO はoperationalStatus
パラメーターをerror
に更新し、操作を再試行します。Ironic が更新を完了し、ホストが起動したら、次のコマンドを実行してノードをスケジューリング対象に戻します。
oc uncordon <node_name>
$ oc uncordon <node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.12. HostFirmware Settings リソースが有効であることの確認 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーが spec.settings
セクションを編集して HostFirmwareSetting
(HFS) リソースに変更を加えると、Bare Metal Operator (BMO) は読み取り専用リソースである FimwareSchema
リソースに対して変更を検証します。この設定が無効な場合、BMO は status.Condition
設定の Type
の値を False
に設定し、イベントを生成して HFS リソースに保存します。以下の手順を使用して、リソースが有効であることを確認します。
手順
HostFirmwareSetting
リソースの一覧を取得します。oc get hfs -n openshift-machine-api
$ oc get hfs -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のホストの
HostFirmwareSettings
リソースが有効であることを確認します。oc describe hfs <host_name> -n openshift-machine-api
$ oc describe hfs <host_name> -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
<host_name>
はホストの名前です。出力例
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ValidationFailed 2m49s metal3-hostfirmwaresettings-controller Invalid BIOS setting: Setting ProcTurboMode is invalid, unknown enumeration value - Foo
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ValidationFailed 2m49s metal3-hostfirmwaresettings-controller Invalid BIOS setting: Setting ProcTurboMode is invalid, unknown enumeration value - Foo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要応答が
ValidationFailed
を返す場合、リソース設定にエラーがあり、FirmwareSchema
リソースに準拠するよう値を更新する必要があります。
4.7.13. FirmwareSchema リソースについて リンクのコピーリンクがクリップボードにコピーされました!
BIOS 設定は、ハードウェアベンダーやホストモデルによって異なります。FirmwareSchema
リソースは、各ホストモデル上の各 BIOS 設定のタイプおよび制限が含まれる読み取り専用リソースです。データは BMC から Ironic に直接取得されます。FirmwareSchema
を使用すると、HostFirmwareSettings
リソースの spec
フィールドに指定できる有効な値を特定できます。FirmwareSchema
リソースには、その設定および制限から派生する一意の識別子があります。同じホストモデルは同じ FirmwareSchema
識別子を使用します。HostFirmwareSettings
の複数のインスタンスが同じ FirmwareSchema
を使用する可能性が高いです。
パラメーター | 説明 |
---|---|
|
|
4.7.14. FirmwareSchema リソースの取得 リンクのコピーリンクがクリップボードにコピーされました!
各ベンダーの各ホストモデルの BIOS 設定は、それぞれ異なります。HostFirmwareSettings
リソースの spec
セクションを編集する際に、設定する名前/値のペアはそのホストのファームウェアスキーマに準拠している必要があります。有効な名前と値のペアを設定するには、ホストの FirmwareSchema
を取得して確認します。
手順
次のコマンドを実行して、
FirmwareSchema
リソースインスタンスのリストを取得します。oc get firmwareschema -n openshift-machine-api
$ oc get firmwareschema -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、特定の
FirmwareSchema
インスタンスを取得します。oc get firmwareschema <instance_name> -n openshift-machine-api -o yaml
$ oc get firmwareschema <instance_name> -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
<instance_name>
は、HostFirmwareSettings
リソース (表 3 を参照) に記載されているスキーマインスタンスの名前です。
4.7.15. HostFirmwareComponents リソースについて リンクのコピーリンクがクリップボードにコピーされました!
Metal3 は、BIOS およびベースボード管理コントローラー (BMC) ファームウェアのバージョンを記述する HostFirmwareComponents
リソースを提供します。HostFirmwareComponents
リソースには 2 つのセクションが含まれています。
-
HostFirmwareComponents
spec -
HostFirmwareComponents
status
4.7.15.1. HostFirmwareComponents spec リンクのコピーリンクがクリップボードにコピーされました!
HostFirmwareComponents
リソースの spec
セクションでは、ホストの BIOS および BMC バージョンの目的の状態を定義します。
パラメーター | 説明 |
---|---|
updates: component: url:
|
|
4.7.15.2. HostFirmwareComponents status リンクのコピーリンクがクリップボードにコピーされました!
HostFirmwareComponents
リソースの status
セクションは、ホストの BIOS および BMC バージョンの現在のステータスを返します。
パラメーター | 説明 |
---|---|
|
|
updates: component: url:
|
|
4.7.16. HostFirmwareComponents リソースの取得 リンクのコピーリンクがクリップボードにコピーされました!
HostFirmwareComponents
リソースには、物理ホストの BIOS およびベースボード管理コントローラー (BMC) の特定のファームウェアバージョンが含まれています。ファームウェアのバージョンとステータスを確認するには、物理ホストの HostFirmwareComponents
リソースを取得する必要があります。
手順
次のコマンドを実行して、
HostFirmwareComponents
リソースの詳細なリストを取得します。oc get hostfirmwarecomponents -n openshift-machine-api -o yaml
$ oc get hostfirmwarecomponents -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
HostFirmwareComponents
リソースのリストを取得します。oc get hostfirmwarecomponents -n openshift-machine-api
$ oc get hostfirmwarecomponents -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、特定のホストの
HostFirmwareComponents
リソースを取得します。oc get hostfirmwarecomponents <host_name> -n openshift-machine-api -o yaml
$ oc get hostfirmwarecomponents <host_name> -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
<host_name>
はホストの名前です。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.17. プロビジョニング済みホストの HostFirmwareComponents リソースの編集 リンクのコピーリンクがクリップボードにコピーされました!
プロビジョニング済みホストの HostFirmwareComponents
リソースを編集できます。
手順
次のコマンドを実行して、
HostFirmwareComponents
リソースの詳細なリストを取得します。oc get hostfirmwarecomponents -n openshift-machine-api -o yaml
$ oc get hostfirmwarecomponents -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
HostFirmwareComponents
リソースを編集します。oc edit <hostname> hostfirmwarecomponents -n openshift-machine-api
$ oc edit <hostname> hostfirmwarecomponents -n openshift-machine-api
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<hostname>
はホストの名前です。HostFirmwareComponents
リソースが、ターミナルのデフォルトのエディターで開きます。
適切な編集を行います。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存し、エディターを終了します。
次のコマンドを実行して、ホストのマシン名を取得します。
oc get bmh <host_name> -n openshift-machine name
$ oc get bmh <host_name> -n openshift-machine name
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ここで、
<host_name>
はホストの名前です。ターミナルのCONSUMER
フィールドの下にマシン名が表示されます。
次のコマンドを実行して、マシンにアノテーションを付けてマシンセットから削除します。
oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api
$ oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ここで、
<machine_name>
は削除するマシンの名前です。
次のコマンドを実行して、ノードのリストを取得し、ワーカーノードの数をカウントします。
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してマシンセットを取得します。
oc get machinesets -n openshift-machine-api
$ oc get machinesets -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、マシンセットをスケールダウンします。
oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1>
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<machineset_name>
はマシンセットの名前です。<n-1>
は減少させたワーカーノードの数です。
ホストが
Available
状態になったら、次のコマンドを実行してマシンセットをスケールアップし、HostFirmwareComponents
リソースの変更を反映します。oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n>
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<machineset_name>
はマシンセットの名前です。<n>
はワーカーノードの数です。
4.7.18. HostFirmwareComponents リソースへのライブ更新の実行 リンクのコピーリンクがクリップボードにコピーされました!
すでにプロビジョニングされているホスト上の HostFirmwareComponents
リソースに対してライブ更新を実行できます。ライブ更新では、ホストのプロビジョニング解除と再プロビジョニングはトリガーされません。
ホストのライブ更新はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
実稼働ホストではライブ更新を実行しないでください。BIOS のライブ更新はテスト目的で実行できます。特に以前の世代のハードウェアでは、テスト目的で OpenShift Container Platform 4.19 上の BMC にライブ更新を実行することは推奨しません。
前提条件
-
HostUpdatePolicy
リソースのfirmwareUpdates
パラメーターがonReboot
に設定されている。
手順
次のコマンドを実行して、
HostFirmwareComponents
リソースを更新します。oc patch hostfirmwarecomponents <hostname> --type merge -p \ '{"spec": {"updates": [{"component": "<type>", \ "url": "<url>"}]}}'
$ oc patch hostfirmwarecomponents <hostname> --type merge -p \
1 '{"spec": {"updates": [{"component": "<type>", \
2 "url": "<url>"}]}}'
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記oc edit <hostname> hostfirmwarecomponents -n openshift-machine-api
コマンドを使用してリソースを更新することもできます。次のコマンドを実行して、ノードをスケジューリング対象から外してドレインします。
oc drain <node_name> --force
$ oc drain <node_name> --force
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<node_name>
はノード名に置き換えてください。
次のコマンドを実行して、ホストの電源を 5 分間オフにします。
oc patch bmh <hostname> --type merge -p '{"spec": {"online": false}}'
$ oc patch bmh <hostname> --type merge -p '{"spec": {"online": false}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このステップにより、デーモンセットまたはコントローラーが、ノード上で実行されている可能性のあるインフラストラクチャー Pod をオフラインとしてマークし、残りのノードが受信リクエストを処理するようになります。
5 分後、次のコマンドを実行してホストの電源をオンにします。
oc patch bmh <hostname> --type merge -p '{"spec": {"online": true}}'
$ oc patch bmh <hostname> --type merge -p '{"spec": {"online": true}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービス操作が開始し、Bare Metal Operator (BMO) が
BareMetalHost
のoperationalStatus
パラメーターをservicing
に設定します。BMO は、リソースを更新した後、operationalStatus
パラメーターをOK
に更新します。エラーが発生した場合、BMO はoperationalStatus
パラメーターをerror
に更新し、操作を再試行します。次のコマンドを実行してノードをスケジューリング対象に戻します。
oc uncordon <node_name>
$ oc uncordon <node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.19. HostUpdatePolicy リソースについて リンクのコピーリンクがクリップボードにコピーされました!
HostUpdatePolicy
リソースを使用すると、各ベアメタルホストのファームウェア設定、BMC 設定、またはファームウェア設定へのライブ更新の適用を有効または無効にできます。デフォルトでは、すでにプロビジョニングされたベアメタルホストへのライブ更新は、Operator によって無効にされます。
HostUpdatePolicy
仕様
HostUpdatePolicy
リソースの spec
セクションには、次の 2 つの設定があります。
firmwareSettings
-
この設定は、
HostFirmwareSettings
リソースに対応するものです。 firmwareUpdates
-
この設定は、
HostFirmwareComponents
リソースに対応するものです。
値を onPreparing
に設定すると、ホストを更新できるのがプロビジョニング中だけになります。これがデフォルト設定です。値を onReboot
に設定すると、リソースを適用してベアメタルホストを再起動することで、プロビジョニング済みホストを更新できます。その後、HostFirmwareSettings
または HostFirmwareComponents
リソースを編集する手順に従います。
HostUpdatePolicy
リソースの例
4.7.20. HostUpdatePolicy リソースの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、HostUpdatePolicy
はライブ更新を無効にします。ライブ更新を有効にするには、次の手順に従います。
HostUpdatePolicy
リソースの設定はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
手順
次のコマンドを実行して、
HostUpdatePolicy
リソースを作成します。vim hup.yaml
$ vim hup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 任意のテキストエディターを使用できます。
HostUpdatePolicy リソースの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<hostname>
はホスト名に置き換えます。
-
hup.yaml
ファイルへの変更を保存します。 以下のコマンドを実行してポリシーを適用します。
oc apply -f hup.yaml
$ oc apply -f hup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow