KEDAとPrometheusを使用したクラスタ自動スケーリングPage

要件

  • GPUが接続されたKubernetesクラスター

  • GPUアプリケーションが稼働状態であること

  • 本ドキュメントに記載の通り、FPT App Catalogサービス内のkube-prometheus-stackおよびprometheus-adapterパッケージ

段階的に

1

ステップ1: KEDAをインストールする

FPT アプリカタログの使用

FPT CLOUD App Catalog サービスを選択し、fptcloud-catalogs リポジトリで KEDA を検索します。

Helm チャートの使用

Helm チャートの使用

KEDAポッドが正常に実行されているか確認する

kubectl -n keda get pod

2

ステップ2: PrometheusにGPUメトリクスがあるか確認する

kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 | jq -r . | grep DCGM

3

ステップ3: アプリケーションの自動スケーリングを指定するScaledObjectを作成する

  • マニフェスト

  • name: 例におけるGPUデプロイメントの名前は gpu-test です

  • serverAddress:_例におけるPrometheusサーバーのエンドポイントは http://prometheus-kube-prometheus-prometheus.prometheus.svc.cluster.local:9090 です

  • query: オートスケールを実行する基準となる値を取得するPromQLクエリ。上記の例では変数DCGM_FI_PROF_GR_ENGINE_ACTIVEの平均値を取得します

  • threshold: アクティブなオートスケールをトリガーするしきい値。例では0.8です

上記の例に示すように、DCGM_FI_PROF_GR_ENGINE_ACTIVEの平均値が0.8を超えるたびに、ScaledObjectはgpu-testという名前のDeploymentのPodをスケールします。

ScaledObjectを作成すると、Deploymentは自動的に0にスケールダウンし、設定が成功したことを示します。

Last updated