NVIDIA GPUプラグイン
NVIDIA GPUプラグイン・クラスタ・アドオンを有効にすると、次のキー/値のペアを引数として渡すことができます。
NVIDIA GPUワーカー・ノードで実行されているワークロードが予期せず中断されないようにするために、Oracleでアドオンを自動的に更新するように指定するのではなく、デプロイするNVIDIA GPUプラグイン・アドオンのバージョンを選択することをお薦めします。
| キー(APIおよびCLI) | キーの表示名(コンソール) | 説明 | 必須/オプション | デフォルト値 | 値の例 |
|---|---|---|---|---|---|
affinity |
affinity |
アフィニティ・スケジューリング・ルールのグループ。 プレーン・テキストまたはエンコードされたBase64のJSON形式。 未使用者:
可能な等価:
|
オプション | null | null |
nodeSelectors |
ノード・セレクター |
ノード・セレクタおよびノード・ラベルを使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。 ポッドをノードで実行するには、ポッドのノード・セレクタのキー/値がノードのラベルと同じである必要があります。
プレーン・テキストまたはエンコードされたBase64のJSON形式。 未使用者:
可能な等価:
|
オプション | null | {"foo":"bar", "foo2": "bar2"}ポッドは、 |
numOfReplicas |
numOfReplicas | アドオン配備の複製の数。 未使用者:
可能な等価:
|
必須 | 1クラスタごとにアドオン・デプロイメントのレプリカを1つ作成します。 |
2クラスタごとにアドオン・デプロイメントの2つのレプリカを作成します。 |
rollingUpdate |
rollingUpdate |
maxSurgeおよびmaxUnavailableによるローリング更新の望ましい動作を制御します。 プレーン・テキストまたはエンコードされたBase64のJSON形式。 未使用者:
可能な等価:
|
オプション | null | null |
tolerations |
許容範囲 |
テイントおよび許容範囲を使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。 taintがあるノード上でポッドを実行するには、ポッドに対応する許容範囲が必要です。
プレーン・テキストまたはエンコードされたBase64のJSON形式。 可能な等価:
|
オプション | null | [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]この許容範囲を持つポッドのみが、 |
topologySpreadConstraints |
topologySpreadConstraints |
指定されたトポロジ間で一致するポッドを分散する方法。 プレーン・テキストまたはエンコードされたBase64のJSON形式。 未使用者:
|
オプション | null | null |
| キー(APIおよびCLI) | キーの表示名(コンソール) | 説明 | 必須/オプション | デフォルト値 | 値の例 |
|---|---|---|---|---|---|
deviceIdStrategy
|
デバイスID戦略 |
基礎となるランタイムにデバイスIDを渡すために使用する戦略。 次のいずれかです。
|
オプション |
uuid
|
|
deviceListStrategy
|
デバイス・リスト戦略 |
基礎となるランタイムにデバイス・リストを渡すために使用する戦略。 サポートされる値:
カンマ区切りリストでは複数の値がサポートされています。 |
オプション |
envvar
|
|
driverRoot
|
ドライバ・ルート | NVIDIAドライバインストールのルートパス。 | オプション |
/
|
|
failOnInitError
|
FailOnInitError |
初期化中にエラーが発生した場合にプラグインを失敗させるかどうか。
|
オプション |
true
|
|
migStrategy
|
MIG戦略 |
MIG (マルチインスタンスGPU)デバイスをサポートしているGPUに公開する際に使用する戦略。 次のいずれかです。
|
オプション |
none
|
|
nvidia-gpu-device-plugin.ContainerResources
|
nvidia-gpu-device-pluginコンテナリソース |
アドオン・コンテナが要求するリソース数量を指定し、アドオン・コンテナが超過できないリソース使用量制限を設定できます。 プレーン・テキストまたはエンコードされたBase64のJSON形式。 |
オプション | null |
{"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}
100ミリコアのCPUと100メビバイトのメモリーをリクエストするアドオン・コンテナを作成します。アドオンコンテナを500MバイトのCPUおよび200Mバイトのメモリーに制限します。 |
passDeviceSpecs
|
デバイス仕様を渡す | コンテナに割り当てられているNVIDIAデバイスのパスおよび目的のデバイス・ノード権限を渡すかどうか。 | オプション |
false
|
|
useConfigFile
|
ConfigMapの構成ファイルの使用 |
構成ファイルを使用してKubernetes用のNvidiaデバイス・プラグインを構成するかどうか。構成ファイルは、ConfigMapから導出されます。
ConfigMapは、 |
オプション |
false
|
nvidia-device-plugin-config ConfigMapの例:
apiVersion: v1
kind: ConfigMap
metadata:
name: nvidia-device-plugin-config
namespace: kube-system
data:
config.yaml: |
version: v1
flags:
migStrategy: "none"
failOnInitError: true
nvidiaDriverRoot: "/"
plugin:
passDeviceSpecs: false
deviceListStrategy: envvar
deviceIDStrategy: uuid次の表に、大規模クラスタでこのクラスタ・アドオンを構成する際の考慮事項を示します。
| 引数名 | ロールWRTノード数 | 説明 | クラスタ・サイズが増加するにつれて | リスク | 推奨事項 |
|---|---|---|---|---|---|
nvidia-gpu-device-plugin.ContainerResources
|
あり |
NVIDIA GPUプラグイン・ポッドのCPUおよびメモリー・リクエストおよび制限を定義します。 |
プラグインは、すべてのGPUノード上でDaemonSetとして実行されるため、GPUノードの数に応じてリソース使用量が増加します。 追加のGPUノードが増加:
|
リソースのサイズが小さい場合:
|
|
affinity / nodeSelectors / tolerations
|
あり |
NVIDIA GPUプラグイン・ポッドが実行されるノードを制御します。 |
|
これらの引数が正しく構成されていない場合:
|
|
topologySpreadConstraints
|
なし |
NVIDIA GPUプラグイン・ポッドをノードおよび可用性ドメインに分散する方法を制御します。 |
トポロジ分散制約は、異機種間GPUノード・プールを持つマルチドメイン・クラスタおよびクラスタで均等な分散を維持するのに役立ちます。 |
トポロジ分散制約が構成されていない場合:
|
複数の可用性ドメインにまたがる大規模なGPUクラスタ、または異機種間GPUノード・プールを含む大規模なGPUクラスタには、トポロジ分散制約を使用します。 |
numOfReplicas
|
なし |
レプリカベースのスケーリングをサポートするコンポーネントのレプリカの数を制御します。 |
NVIDIA GPUプラグインは、対象となるGPUノードごとに1つのポッドを持つDaemonSetとして実行されます。レプリカ数を変更してもスケーリングされません。 |
該当なし | 該当なし |
rollingUpdate
|
なし |
NVIDIA GPUプラグイン・ポッドの更新方法を制御します。 |
大規模なクラスタでは、更新は多くのGPUノードに影響し、一時的にGPUの可用性を低下させる可能性があります。 |
|
|
failOnInitError
|
あり |
初期化に失敗した場合のプラグインの動作を制御します。 |
初期化の失敗は、GPUノードの数が増えるにつれて、クラスタ内のどこかで発生する可能性が高くなります。 |
|
|
deviceListStrategy / deviceIdStrategy
|
なし |
GPUデバイスを識別し、コンテナに公開する方法を制御します。 |
選択した戦略は、GPUノード間のコンテナ実行時統合およびGPU割当て効率に影響します。 |
正しく構成されていない場合、GPUデバイスはコンテナに一貫して識別または注入されない可能性があります。これにより、GPUワークロードの障害、不正なデバイス割当て、GPUノード間のスケジューリングの問題が発生する可能性があります。 |
コンテナ・ランタイムおよびGPU環境にあわせてdeviceListStrategyおよびdeviceIdStrategyを構成し、検証済ユース・ケースで特に必要がないかぎり、デフォルトのuuidデバイス識別戦略を使用します。 |
migStrategy
|
なし |
NVIDIAマルチインスタンスGPUリソースをKubernetesに公開する方法を制御します。 |
マルチインスタンスGPUは、GPUワークロードの数が増加するにつれて、GPUの共有と使用率を向上させることができます。 |
この引数が正しく構成されていない場合は、次のようにします。
|
GPUパーティション化が必要な場合にのみ、マルチインスタンスGPUを使用します。 |