すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ACK Edge クラスタにおける GPU リソースの監視のベストプラクティス

最終更新日:Apr 24, 2025

ACK Edge クラスタでは、データセンターおよびエッジの GPU アクセラレーションノードを管理できます。複数のリージョンおよび環境にわたる異種計算能力を管理できます。ACK Edge クラスタ を Managed Service for Prometheus に接続できます。これにより、データセンターおよびエッジの GPU アクセラレーションノードを、クラウド内のノードと同じ方法で監視できます。

エッジノードの可観測性原則

ACK Edge クラスタでは、Express Connect 回線またはインターネットを使用して、データセンター、サードパーティクラウドベンダー、IoT デバイスなどの Infrastructure as a Service(IaaS)リソースにアクセスできます。エッジノードは、Managed Service for Prometheus がエッジノードにアクセスできるように、Express Connect 回線を使用してクラウドと通信します。これにより、可観測性が期待どおりに実行されることが保証されます。Managed Service for Prometheus は、Raven を使用して、インターネット経由でエッジノードを監視します。次の図は、手順を示しています。

image
  1. Managed Service for Prometheus は、ノードの IP アドレスではなく、ノード名に基づいてメトリックを収集します。ドメイン名解決中に、CoreDNS は Hosts プラグインを構成して、エッジノード名を Raven サービスに解決します。

  2. Managed Service for Prometheus が Raven サービスにアクセスすると、サービスのバックエンドからゲートウェイノードを選択して、エッジのネットワークドメインと通信します。

  3. ゲートウェイノードの Raven-agent は、オンプレミスデータセンターのゲートウェイノードの Raven-agent と暗号化されたチャネルを確立します。レイヤー 3 およびレイヤー 7 のネットワーク通信がサポートされています。

  4. オンプレミスデータセンターネットワークドメインのゲートウェイノードで、Raven-agent はターゲットノードの GPU コレクションポートにアクセスして、モニタリングデータを取得します。

エッジ GPU アクセラレーションノードを監視する

手順 1: Managed Service for Prometheus を有効にする

  1. ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスタ] をクリックします。

  2. [クラスタ] ページで、管理するクラスタを見つけ、その名前をクリックします。左側のウィンドウで、[操作] > [prometheus 監視] を選択します。

  3. [prometheus 監視] ページで、手順に従って必要なコンポーネントをインストールし、関連するダッシュボードを確認します。

    システムは自動的にコンポーネントをインストールし、ダッシュボードを確認します。インストールが完了したら、各タブをクリックしてメトリックを表示します。

手順 2: エッジ GPU アクセラレーションノードを追加する

エッジ GPU アクセラレーションノードを追加する方法の詳細については、「GPU アクセラレーションノードを追加する」をご参照ください。

手順 3:接続された GPU アクセラレーションノードにアプリケーションをデプロイして、GPU 関連メトリックの正確性を検証する

この例では、TensorFlow ベンチマークプロジェクトを使用します。排他的 GPU スケジューリング機能が使用されます。エッジ GPU アクセラレーションノードで GPU リソースを共有するアプリケーションを実行することもできます。詳細については、「複数の GPU 共有を操作する」をご参照ください。

  1. kubectl を使用して ACK クラスタに接続する

  2. ジョブを作成し、tensorflow.yaml ファイルとして保存します。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: tensorflow-benchmark-exclusive
    spec:
      parallelism: 1
      template:
        metadata:
          labels:
            app: tensorflow-benchmark-exclusive
        spec:
          containers:
          - name: tensorflow-benchmark
            image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:benchmark-tensorflow-2.2.3
            command:
            - bash
            - run.sh
            - --num_batches=5000000
            - --batch_size=8
            resources:
              limits:
                nvidia.com/gpu: 1 #GPU を申請します。
            workingDir: /root
          restartPolicy: Never
  3. クラスタにジョブをデプロイします。

    kubectl apply -f tensorflow.yaml

手順 4:GPU 監視ダッシュボードを表示する

  1. ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスタ] をクリックします。

  2. [クラスタ] ページで、管理するクラスタを見つけ、その名前をクリックします。左側のウィンドウで、[操作] > [prometheus 監視] を選択します。

  3. [prometheus 監視] ページで、[GPU 監視] タブをクリックします。

    • [GPU - クラスタディメンション] タブをクリックして、クラスタのダッシュボードを表示します。詳細については、「クラスタダッシュボードを表示する」をご参照ください。123

    • [GPU - ノード] タブをクリックして、GPU アクセラレーションノードのダッシュボードを表示します。ダッシュボードの詳細については、「ノードダッシュボードを表示する」をご参照ください。22

手順 5:エッジ GPU アクセラレーションノードの監視メトリックを表示する

GPU 監視で使用される GPU エクスポーターは、Data Center GPU Manager(DCGM)エクスポーターによって提供されるメトリックと互換性があります。GPU エクスポーターは、特定のシナリオの要件を満たすために、カスタムメトリックも提供します。DCGM エクスポーターの詳細については、「DCGM exporter」をご参照ください。

GPU 監視には、「DCGM エクスポーターでサポートされているメトリック」と「カスタムメトリック」が含まれています。次の操作を実行して、GPU 関連のメトリックを表示できます。

重要
  • GPU 監視で使用されるカスタムメトリックには料金が発生します。

  • この機能を有効にする前に、「課金の概要」を読んで、カスタムメトリックの課金ルールを理解することをお勧めします。料金は、クラスタサイズとアプリケーションの数によって異なる場合があります。「使用状況クエリ」の手順に従って、リソース使用量を監視および管理できます。

  1. ARMS コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[メトリックセンター] > [メトリックエクスプローラー] を選択します。

  3. ページ上部のドロップダウンリストから Prometheus インスタンスを選択します。

  4. A セクションで、メトリックを選択し、[クエリを実行] をクリックします。ビジネス要件に基づいてモードを選択します。

    33