このトピックでは、Application Real-Time Monitoring Managed Service for Prometheusを使用してKubernetesクラスターのGPUリソースをモニタリングする方法について説明します。
前提条件
次の操作が完了しました。
Promtheusサービスが有効になっています。
Prometheusのマネージドサービスがインストールされています。 詳細については、「Prometheus Serviceの有効化」をご参照ください。
Prometheus Serviceを使用したGPUリソースのモニタリング
ACKコンソールにログインします。
[クラスター] ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。 クラスターの詳細ページが表示されます。
詳細ページの左側のナビゲーションウィンドウで、 を選択します。
[Prometheus Monitoring] ページで、[GPU APP] タブをクリックしてGPU APPダッシュボードを表示し、[GPU Node] タブをクリックしてGPU Nodeダッシュボードを表示します。
GPU APPダッシュボードには、各ポッドで使用されているGPUリソースに関するモニタリング情報が表示されます。
GPUノードダッシュボードには、各ノードのGPUリソース使用量に関するモニタリング情報が表示されます。
次のYAMLテンプレートを使用して、GPUアクセラレーションノードにアプリケーションをデプロイし、GPUリソースのモニタリングをテストします。
apiVersion: apps/v1 kind: Deployment metadata: name: bert-intent-detection spec: replicas: 1 selector: matchLabels: app: bert-intent-detection template: metadata: labels: app: bert-intent-detection spec: containers: - name: bert-container image: registry.cn-beijing.aliyuncs.com/ai-samples/bert-intent-detection:1.0.1 ports: - containerPort: 80 resources: limits: nvidia.com/gpu: 1 --- apiVersion: v1 kind: Service metadata: labels: run: bert-intent-detection name: bert-intent-detection-svc spec: ports: - port: 8500 targetPort: 80 selector: app: bert-intent-detection type: LoadBalancer
[Prometheus Monitoring] ページで、[GPU APP] タブをクリックします。
[GPU APP] タブでは、使用されているGPUメモリ、GPUメモリ使用量、消費電力、安定性など、各ポッドで使用されているGPUリソースのさまざまなメトリックを表示できます。 各GPU高速化ノードにデプロイされたアプリケーションを表示することもできます。
GPU高速化ノードにデプロイされたアプリケーションでストレステストを実行し、メトリックの変更を確認します。
次のコマンドを実行して、推論タスクのサービスとサービスのIPアドレスを照会します。
kubectl get svc bert-intent-detection-svc
期待される出力:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE bert-intent-detection-svc LoadBalancer 172.23.5.253 123.56.XX.XX 8500:32451/TCP 14m
次のコマンドを実行してストレステストを実行します。
hey -z 10m -c 100 "http://123.56.XX.XX:8500/predict?query=music"
次の図に示すように、メトリクスはGPUメモリ使用量の明らかな増加を示しています。