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

要件:
GPUが接続されたKubernetesクラスター
実行状態にあるGPUベースのアプリケーション
手順
ステップ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: 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
