GPUカスタムメトリクスを使用したクラスタの自動スケーリング

KubernetesはPrometheusとの連携により、GPUメトリクスなどのカスタムメトリクスに基づく自動スケーリングをサポートします。本記事では、FPT Kubernetes Engineプラットフォーム上で動作するGPUベースのアプリケーション向けに自動スケーリングを設定する方法をご紹介します。

要件:

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

  • 実行状態にあるGPUベースのアプリケーション

手順

1

ステップ1: kube-prometheus-stack および prometheus-adapter パッケージをインストールする

FPT App Catalog サービスを使用する

  • FPT App Catalog サービスを使用し、App Catalog を作成した後、[クラスターに接続] を選択して GPU クラスターに接続します。

  • App Catalogs メニューで、リポジトリとして fptcloud-catalogs を選択し、prometheus を検索して kube-prometheus-stack パッケージのインストールを選択します。パッケージをデプロイするためのリリース名とネームスペースを入力します。

Helmチャートを使用する:

  • kube-prometheus-stack パッケージのデプロイ後、prometheus-adapter のデプロイを続行しますが、kube-prometheus-stack の正しい prometheus サービスを指すようパッケージの値を変更する必要があります。例えば、kube-prometheus-stack のネームスペースが prometheus に設定されている場合、入力が必要な値は以下の通りです:

次に、2つのパッケージの状態を確認します

2

ステップ2: GPUアプリケーションの水平ポッドオートスケーラーを設定する

水平ポッドオートスケーラー(HPA)は、構成で指定された条件を満たすようポッドを自動的にスケーリングします。前のセクションでは、prometheus-addapterを設定した後、GPUワークロードを監視するためにDCGMのカスタムメトリクスをエクスポートします。

HPAマニフェストファイルの例

以下のリンクにあるNVIDIAのDCGMメトリクスに関するドキュメントを参照してください。https://docs.nvidia.com/datacenter/dcgm/1.6/dcgm-api/group__dcgmFieldIdentifiers.html

その後、新しく作成されたHPAを確認します:

kubectl get hpa -A

Last updated