Container insights で GPU の監視を構成する

Container insights に統合されたバージョン ciprod03022019 以降のエージェントでは、グラフィカル処理ユニット (GPU) 対応の Kubernetes クラスター ノードでの GPU の使用状況の監視、および GPU リソースを要求および使用しているポッドとコンテナーの監視が、サポートされるようになっています。

注意

Kubernetes アップストリームのお知らせに従って、Kubernetes は kubelet によって報告されている GPU メトリックを非推奨としています (Kubernetes バージョン 1.20 以降)。 その結果、Container insights は、次のメトリックを追加設定なしで収集できなくなります。

  • containerGpuDutyCycle
  • containerGpumemoryTotalBytes
  • containerGpumemoryUsedBytes

引き続き Container insights を使用して GPU メトリックを収集するには、2022 年 12 月 31 日までに GPU ベンダー固有のメトリック エクスポーターに移行してください。 デプロイされたベンダー固有のエクスポーターからメトリックをスクレイピングするように Prometheus スクレイピングを構成します。

サポートされる GPU ベンダー

Container insights では、次の GPU ベンダーによる GPU クラスターの監視がサポートされています。

Container insights を使用すると、次のメトリックが 60 秒間隔で収集され、InsightMetrics テーブルに格納されることで、ノードでの GPU の使用率および GPU を要求するポッドとワークロードの監視が自動的に開始されます。

注意

GPU ノードがあるクラスターをプロビジョニングした後、GPU ワークロードを実行するために、Azure Kubernetes Service (AKS) に必要とされる GPU ドライバーを確実にインストールしてください。 Container insights により、ノードで実行されている GPU ドライバー ポッドを介して GPU メトリックが収集されます。

メトリックの名前 メトリック ディメンション (タグ) 説明
containerGpuDutyCycle* container.azm.ms/clusterId、container.azm.ms/clusterName、containerName、gpuId、gpuModel、gpuVendor 過去のサンプリング期間 (60 秒) 中に、コンテナーに対して GPU がビジーであるかアクティブに処理を行っていた時間の割合。 デューティ サイクルは 1 から 100 までの値です。
containerGpuLimits container.azm.ms/clusterId、container.azm.ms/clusterName、containerName 各コンテナーでは、1 つまたは複数の GPU として制限を指定できます。 GPU の一部を要求または制限することはできません。
containerGpuRequests container.azm.ms/clusterId、container.azm.ms/clusterName、containerName 各コンテナーでは、1 つまたは複数の GPU を要求できます。 GPU の一部を要求または制限することはできません。
containerGpumemoryTotalBytes* container.azm.ms/clusterId、container.azm.ms/clusterName、containerName、gpuId、gpuModel、gpuVendor 特定のコンテナーに使用できる GPU メモリの量 (バイト)。
containerGpumemoryUsedBytes* container.azm.ms/clusterId、container.azm.ms/clusterName、containerName、gpuId、gpuModel、gpuVendor 特定のコンテナーに使用された GPU メモリの量 (バイト)。
nodeGpuAllocatable container.azm.ms/clusterId、container.azm.ms/clusterName、gpuVendor Kubernetes で使用できるノード内の GPU の数。
nodeGpuCapacity container.azm.ms/clusterId、container.azm.ms/clusterName、gpuVendor ノード内の GPU の合計数。

* Kubernetes アップストリームの変更に基づき、これらのメトリックは追加設定なしで収集されなくなくなりました。 AKS の一時的な修正プログラムとして、GPU ノード プールを最新バージョンまたは *-2022.06.08 以降にアップグレードしてください。 Azure Arc 対応 Kubernetes の場合は、ノードの kubelet 構成で機能ゲート DisableAcceleratorUsageMetrics=false を有効にして、kubelet を再起動します。 アップストリームの変更が一般提供に達すると、この修正プログラムは機能しなくなります。 2022 年 12 月 31 日までに GPU ベンダー固有のメトリック エクスポーターの使用に移行する計画を立ててください。

GPU パフォーマンス グラフ

Container insights には、すべてのクラスターに対する GPU ブックとして、前の表で示したメトリックの事前構成済みのグラフが含まれています。 Container insights で使用できるブックの説明については、Container insights のブックに関する記事を参照してください。

次のステップ