11.2. ベアメタルイベントの仕組み
Bare Metal Event Relay により、ベアメタルクラスターで実行されるアプリケーションが Redfish ハードウェアの変更や障害に迅速に対応することができます。たとえば、温度のしきい値の違反、fan の障害、ディスク損失、電源停止、メモリー障害などが挙げられます。これらのハードウェアイベントは、Advanced Message Queuing Protocol (AMQP) をベースとした信頼できる低レイテンシートランスポートチャネルを介して配信されます。メッセージングサービスのレイテンシーは 10 ミリ秒から 20 ミリ秒です。
Bare Metal Event Relay は、ハードウェアイベントにパブリッシュサブスクライブサービスを提供します。ここでは、複数のアプリケーションが REST API を使用してイベントをサブスクライブおよび消費できます。Bare Metal Event Relay は、Redfish OpenAPI v1.8 以降に準拠するハードウェアをサポートします。
11.2.1. Bare Metal Event Relay データフロー
以下の図は、ベアメタルイベントのデータフローの例を示しています。
図11.1 Bare Metal Event Relay データフロー
11.2.1.1. Operator 管理の Pod
Operator はカスタムリソースを使用して、HardwareEvent
CR を使用して Bare Metal Event Relay およびそのコンポーネントが含まれる Pod を管理します。
11.2.1.2. Bare Metal イベントリレー
起動時に、Bare Metal Event Relay は Redfish API をクエリーし、カスタムレジストリーを含むすべてのメッセージレジストリーをダウンロードします。その後、Bare Metal Event Relay は Redfish ハードウェアからサブスクライブされたイベントを受信し始めます。
Bare Metal Event Relay により、ベアメタルクラスターで実行されるアプリケーションが Redfish ハードウェアの変更や障害に迅速に対応することができます。たとえば、温度のしきい値の違反、fan の障害、ディスク損失、電源停止、メモリー障害などが挙げられます。イベントは HardwareEvent
CR を使用してレポートされます。
11.2.1.3. クラウドネイティブイベント
クラウドネイティブイベント (CNE) は、イベントデータの形式を定義する REST API 仕様です。
11.2.1.4. CNCF CloudEvents
CloudEvents は、イベントデータの形式を定義するために Cloud Native Computing Foundation (CNCF) によって開発されたベンダーに依存しない仕様です。
11.2.1.5. AMQP ディスパッチルーター
ディスパッチルーターは、パブリッシャーとサブスクライバーの間でメッセージ配信サービスを行います。AMQP 1.0 qpid は、インターネットを介した信頼できる高パフォーマンスな完全対称メッセージングをサポートするオープン標準です。
11.2.1.6. クラウドイベントプロキシーサイドカー
クラウドイベントプロキシーサイドカーコンテナーイメージは ORAN API 仕様をベースとしており、ハードウェアイベントのパブリッシュサブスクライブイベントフレームワークを提供します。
11.2.2. サービスを解析する Redfish メッセージ
Bare Metal Event Relay は Redfish イベントを処理する他に、Message
プロパティーなしでイベントのメッセージ解析を提供します。プロキシーは、起動時にハードウェアからベンダー固有のレジストリーを含むすべての Redfish メッセージブローカーをダウンロードします。イベントに Message
プロパティーが含まれていない場合、プロキシーは Redfish メッセージレジストリーを使用して Message
プロパティーおよび Resolution
プロパティーを作成し、イベントをクラウドイベントフレームワークに渡す前にイベントに追加します。このサービスにより、Redfish イベントでメッセージサイズが小さくなり、送信レイテンシーが短縮されます。
11.2.3. CLI を使用した Bare Metal Event リレーのインストール
クラスター管理者は、CLI を使用して Bare Metal Event Relay Operator をインストールできます。
前提条件
- RedFish 対応ベースボード管理コントローラー (BMC) を持つノードでベアメタルハードウェアにインストールされるクラスター。
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
Bare Metal Event Relay の namespace を作成します。
以下の YAML を
bare-metal-events-namespace.yaml
ファイルに保存します。apiVersion: v1 kind: Namespace metadata: name: openshift-bare-metal-events labels: name: openshift-bare-metal-events openshift.io/cluster-monitoring: "true"
namespace
CR を作成します。$ oc create -f bare-metal-events-namespace.yaml
Bare Metal Event Relay Operator の Operator グループを作成します。
以下の YAML を
bare-metal-events-operatorgroup.yaml
ファイルに保存します。apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: bare-metal-event-relay-group namespace: openshift-bare-metal-events spec: targetNamespaces: - openshift-bare-metal-events
OperatorGroup
CR を作成します。$ oc create -f bare-metal-events-operatorgroup.yaml
Bare Metal Event Relay にサブスクライブします。
以下の YAML を
bare-metal-events-sub.yaml
ファイルに保存します。apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: bare-metal-event-relay-subscription namespace: openshift-bare-metal-events spec: channel: "stable" name: bare-metal-event-relay source: redhat-operators sourceNamespace: openshift-marketplace
Subscription
CR を作成します。$ oc create -f bare-metal-events-sub.yaml
検証
Bare Metal Event Relay Operator がインストールされていることを確認するには、以下のコマンドを実行します。
$ oc get csv -n openshift-bare-metal-events -o custom-columns=Name:.metadata.name,Phase:.status.phase
出力例
Name Phase bare-metal-event-relay.4.10.0-202206301927 Succeeded
11.2.4. Web コンソールを使用した Bare Metal Event リレーのインストール
クラスター管理者は、Web コンソールを使用して Bare Metal Event Relay Operator をインストールできます。
前提条件
- RedFish 対応ベースボード管理コントローラー (BMC) を持つノードでベアメタルハードウェアにインストールされるクラスター。
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
OpenShift Container Platform Web コンソールを使用して Bare Metal Event Relay をインストールします。
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub をクリックします。 - 利用可能な Operator の一覧から Bare Metal Event Relay を選択し、Install をクリックします。
- Install Operatorページで、Namespace を選択または作成し、openshift-bare-metal-events を選択して、Install をクリックします。
-
OpenShift Container Platform Web コンソールで、Operators
検証
オプション: 以下のチェックを実行して、Operator が正常にインストールされていることを確認できます。
-
Operators
Installed Operators ページに切り替えます。 Status が InstallSucceeded の状態で、Bare Metal Event Relay がプロジェクトに一覧表示されていることを確認します。
注記インストール時に、 Operator は Failed ステータスを表示する可能性があります。インストールが後に InstallSucceeded メッセージを出して正常に実行される場合は、Failed メッセージを無視できます。
Operator がインストール済みとして表示されない場合に、さらにトラブルシューティングを実行します。
-
Operators
Installed Operators ページに移動し、Operator Subscriptions および Install Plans タブで Status にエラーがあるかどうかを検査します。 -
Workloads
Pods ページに移動し、プロジェクト namespace で Pod のログを確認します。