Skip to main content
本ガイドでは、SambaRack のハードウェア監視を Kubernetes クラスターにインストールする手順を解説します。インストールには次の 2 つのモードがあります。
  1. 全ホストでの SambaNova エクスポーターの有効化
  2. デバイスアドレスの収集
  3. アーティファクトのクラスターへの配置
  4. values ファイルの作成
  5. チャートのインストール
  6. メトリクスの確認
  7. ダッシュボードのインストール
デバイスに到達できない問題、ダッシュボードにデータが表示されない問題、プローブの失敗については、トラブルシューティングをご参照ください。

事前準備

クラスター要件

クラスターでまだ Prometheus と Grafana が稼働していない場合は、まず Prometheus と Grafana のリファレンスアーキテクチャに従ってセットアップしてください。

インストール先の名前空間

チャートとその Secret のインストール先となる monitoring 名前空間を作成します。

SambaRack Manager

SambaRack Manager のセットアップが完了し、ラックのインポートと XRDU シークレットの設定が済んでいることを確認してください。ステップ 2 では、SambaRack Manager を使用してデバイスアドレスと BMC のパスワードを調べます。

SambaNova Runtime

  • 各ホストモジュールに SambaNova Runtime 1.26.3-1 以降がインストールされていること。sambanova-runtime-exporter パッケージは Runtime に同梱されており、チャートからはインストールできません。
インストール作業を行うマシンには gcloud と helm 3 が必要です。また、そのマシンとクラスターノードの両方から SambaNova レジストリへのネットワークアクセスが必要です。

ステップ 1: 全ホストでの SambaNova エクスポーターの有効化

どちらのモードでも、最初にこの作業を行います。チャートはこのエクスポーターをデプロイせず、起動もできません — チャートが行うのは、ホストのポートをスクレイプ可能にすることだけです。すべての RDU ノードでこのサービスが稼働するまで、以降のインストールを進めても RDU メトリクスは生成されません。 各 SambaRack ホストモジュールで、特権ユーザーとして以下を実行します。
動作を確認します。サービスが active を報告し、メトリクスエンドポイントが 200 を返す必要があります。

ステップ 2: デバイスアドレスの収集

アドレスは手入力せず、ラックインベントリから読み取ります。SambaRack Manager がインストールされている場所で以下を実行します。
上記のホスト名とアドレスはプレースホルダです。-o wide を付けると Kubernetes ノード名が、-o json を付けると同じインベントリが JSON 形式で得られます。 必要な情報の記入先は 1 つのファイル、つまり ステップ 4 の values ファイルにまとまっています。本ガイドの他の箇所のために、これらを別途控えておく必要はありません。 XRDU の BMC パスワードは ステップ 4 で別途読み取り、Kubernetes Secret に直接格納します。values ファイルには決して記載しません。

ステップ 3: アーティファクトのクラスターへの配置

レジストリの接続情報は、サービスアカウントキーとともに SambaNova から提供されます。本ガイドを通して、<registry-host> はレジストリのホスト名を、<sambanova-registry> はチャートとイメージが公開されているリポジトリのフルパスを指します。

SambaNova レジストリへの認証

プルシークレットの作成

kubelet には専用のレジストリ認証情報が必要です。helm へのログインでは kubelet の認証情報は設定されません。
これ以外の準備は不要です。ステップ 5 で、kubelet がイメージを、Helm がチャートを直接取得します。

ステップ 4: values ファイルの作成

デバイス認証情報 Secret の作成

XRDU の BMC は認証なしの読み取り (guest read) を許可していないため、XRDU エクスポーターには BMC のパスワードが必要です。SambaRack Manager がインストールされている場所でパスワードを読み取ります。
次に、kubectl アクセスを持つホストで Secret を作成します。プロンプトから入力することで、パスワードがシェル履歴に残りません。

Prometheus のラベルの確認

Probe と ServiceMonitor オブジェクトには、お使いの Prometheus が選択対象とするラベルが必要です。
kube-prometheus-stack は release: <its-release-name> で選択します。空のセレクター ({}) はすべてを選択するため、ラベルは不要です。
Prometheus が選択対象とするラベルのない Probe や ServiceMonitor は、作成自体は成功するものの、その後一切スクレイプされません。これは、正しくインストールしたのにデータが得られない場合の最も一般的な原因です。

values ファイルの記述

monitoring-values.yaml を作成します。設定を保持するのはこの 1 ファイルだけです — ステップ 2 で調べたすべてのアドレスをここに記入し、アップグレード時には helm get values でその内容を読み戻せます。 global.imageRegistry には、接続環境のインストールでは <sambanova-registry> を、エアギャップ環境のインストールでは <local-registry-host>/<project-path> を指定します。<pull-secret-name> には、ステップ 3 で作成したプルシークレットを指定します。接続環境では sambarack-pull、エアギャップ環境では local-registry-pull です。
各ターゲットに必須なのは address だけです。name を指定するとデバイスラベルの値がアドレスの代わりにその値になり、labels 配下の各キーは、そのデバイスから得られるすべての系列 (series) に付与されます。ターゲットの全オプションについては、PDU エクスポーターと XRDU エクスポーターをご参照ください。 SambaNova から特に指示がない限り、イメージタグは指定しないでください。チャートのデフォルトは、本リリースで検証済みのバージョン (pdu-exporter 1.0.0 と xrdu-exporter 1.0.0) です。

ステップ 5: チャートのインストール

すべての Pod が Running になり、有効化した各デバイスエクスポーターに Probe が作成されているはずです。
最後のコマンドは Helm が適用した values を出力します。ターゲットリストとラベルが意図どおりに反映されたかを確認する最も手早い方法です。 続いて、SambaNova エクスポーターの Service に、各 RDU ノードのエンドポイントがあることを確認します。
Pod が Running のまま Ready にならない場合や、エンドポイントが notReadyAddresses に入っている場合は、そのノードでホスト側のサービスが停止しています。ステップ 1 に戻ってください。Readiness Probe は意図的にホストプロセスの状態に追随する設計のため、停止したエクスポーターはゼロ値を報告し続けるのではなく、Service から外れます。
チャートはこの Pod を、snRduArch ラベルの付いたノードにのみスケジュールします。エクスポーターの調整については、SambaNova エクスポーターの設定をご参照ください。

ステップ 6: メトリクスの確認

クラスター内部からのエクスポーターへのクエリ

この方法では、エクスポーター・認証情報・ネットワーク経路を一度に検証でき、Prometheus がスクレイプを始める前でも実行できます。エクスポーターのイメージにはシェルがないため、チャートが元々必要とする ubi-minimal イメージを使って、一時的な Pod をエクスポーターの隣で起動して確認します。 以下のコマンドの <image-registry> には global.imageRegistry に設定したのと同じ値を、<pull-secret-name> にはステップ 3 のプルシークレットを指定します。kubectl run はプルシークレットを自動では付与しないため、確認用の Pod には明示的に指定する必要があります。
三相 PDU は、相ごとに 1 サンプルと合計値を報告します。
XRDU エクスポーターに対して同じコマンドを実行します。
すべてのデバイスを一度に確認するには、以下を実行します。ループ内には実際の PDU アドレスを列挙してください。
XRDU の完全なプローブは約 97 本の系列を返します。内訳は、ファン 2 基ずつの 6 つのファンモジュールと 2 基の PSU ファン、およびセンサーごとの温度の系列です。

Prometheus 経由でのクエリ

組織で使用している URL で Grafana を開き、Explore に移動して Prometheus データソースを選択し、以下を実行します。
sum by (rack) はラックごとに 1 本の系列を返します。pdu_up と xrdu_up はデバイスごとに 1 本の系列を返します。count by (xrdu) は XRDU ごとのファンセンサー数を返します。count(sambanova_platform_info) はメトリクスを報告しているホストの数を返します。結果が空の場合、Prometheus がターゲットをスクレイプしていません。トラブルシューティングをご参照ください。 スクレイプ自体を確認するには、Prometheus UI を開き、Status → Targets に移動します。有効化した各 Probe が 1 つのジョブとして表示され、デバイスごとに 1 つのターゲットが含まれます。

ステップ 7: ダッシュボードのインストール

dashboards.enabled のデフォルトは true のため、ダッシュボードはステップ 5 ですでにインストールされています。false に設定していた場合は、以下で再度有効化します。
--reuse-values により、適用済みのエクスポーターとターゲットの設定は維持されます。その他のインストール方法と各ダッシュボードの表示内容については、リファレンスダッシュボードをご参照ください。

アップグレード

ハードウェア監視のチャートとエクスポーターのバージョンは、SambaRack Manager リリースノートで提供されます。各リリースサイクルの一環としてアップグレードしてください。 接続環境のインストールをアップグレードするには、ステップ 5 の helm upgrade --install コマンドを新しい --version で再実行します。エアギャップ環境の場合は、新しいバージョンで ステップ 3 を繰り返し、新しい .tgz を指定してコマンドを再実行します。 いずれの場合も、入力となるのは values ファイルです。手元に残っていない場合は、クラスターから復元できます。

アンインストール

これにより、チャートが作成したものはすべて削除されます。ホスト側の sambanova_exporter サービスは停止されず、ご自身で作成した Secret も削除されません。

次のステップ