クラスタに NVIDIA GPU を使用するノードがある場合は、NVIDIA Data Center GPU Manager(DCGM)の指標を Cloud Monitoring に送信するようにクラスタを構成すると、GPU の使用率、パフォーマンス、正常性をモニタリングできます。このソリューションでは、Google Cloud Managed Service for Prometheus を使用して NVIDIA DCGM から指標を収集します。
このページは、基盤となる技術インフラストラクチャのライフサイクルを管理する IT 管理者と運用担当者を対象としています。 Google Cloud のコンテンツで参照する一般的なロールとタスク例の詳細については、一般的な GKE Enterprise ユーザーロールとタスクをご覧ください。
始める前に
Google Cloud Managed Service for Prometheus を使用して DCGM から指標を収集するには、Google Distributed Cloud のデプロイが次の要件を満たしている必要があります。
NVIDIA の DCGM-Exporter ツールがクラスタにインストールされている必要があります。DCGM-Exporter は、NVIDIA GPU Operator のインストール時にインストールされます。NVIDIA GPU Operator のインストール手順については、NVIDIA GPU Operator をインストールして確認するをご覧ください。
Google Cloud Managed Service for Prometheus が有効になっている必要があります。手順については、Google Cloud Managed Service for Prometheus を有効にするをご覧ください。
PodMonitoring リソースを構成する
エクスポートされた指標を収集するために、Google Cloud Managed Service for Prometheus の PodMonitoring リソースを構成します。セキュリティ ポリシーや組織のポリシーの制限により、アプリケーションやエクスポータのインストールに問題がある場合は、オープンソース ドキュメントでサポート情報を確認することをおすすめします。
DCGM エクスポータ Pod(nvidia-dcgm-exporter
)によって出力された指標データを取り込むために、Google Cloud Managed Service for Prometheus はターゲットのスクレイピングを使用します。ターゲットのスクレイピングと指標の取り込みは、Kubernetes のカスタム リソースを使用して構成されます。マネージド サービスは PodMonitoring カスタム リソースを使用します。
PodMonitoring カスタム リソースは、デプロイされている名前空間内のターゲットのみをスクレイピングします。複数の Namespace でターゲットをスクレイピングするには、各 Namespace に同じ PodMonitoring カスタム リソースをデプロイします。
次の構成でマニフェスト ファイルを作成します。
マニフェストの
selector
セクションでは、DCGM Exporter Podnvidia-dcgm-exporter
がモニタリング用に選択されていることを指定します。この Pod は、NVIDIA GPU Operator のインストール時にデプロイされます。apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: dcgm-gmp spec: selector: matchLabels: app: nvidia-dcgm-exporter endpoints: - port: metrics interval: 30s
PodMonitoring カスタム リソースをデプロイします。
kubectl apply -n NAMESPACE -f FILENAME --kubeconfig KUBECONFIG
次のように置き換えます。
NAMESPACE
: PodMonitoring カスタム リソースをデプロイする名前空間。FILENAME
: PodMonitoring カスタム リソースのマニフェスト ファイルのパス。KUBECONFIG
: クラスタの kubeconfig ファイルのパス。
PodMonitoring カスタム リソースが目的の Namespace にインストールされていることを確認するには、次のコマンドを実行します。
kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
出力は次のようになります。
NAME AGE dcgm-gmp 3m37s
構成を確認する
Metrics Explorer を使用すると、DCGM エクスポータが正しく構成されていることを確認できます。Cloud Monitoring が指標を取り込むまでに 1 ~ 2 分かかる場合があります。
指標が取り込まれていることを確認します。
-
Google Cloud コンソールで、leaderboard [指標エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。
Prometheus Query Language(PromQL)を使用して、グラフに表示するデータを指定します。
クエリビルダー ペインのツールバーで、< > PromQL をクリックします。
Query Editor にクエリを入力します。たとえば、過去 1 時間に各モードで使用された CPU の平均秒数をグラフ化するには、次のクエリを使用します。
DCGM_FI_DEV_GPU_UTIL{cluster="CLUSTER_NAME", namespace="NAMESPACE"}
次のように置き換えます。
CLUSTER_NAME
: GPU を使用しているノードを含むクラスタの名前。NAMESPACE
: PodMonitoring カスタム リソースをデプロイした Namespace。
PromQL の使用の詳細については、Cloud Monitoring の PromQL をご覧ください。