NVIDIA GPUプラグイン

NVIDIA GPUプラグイン・クラスタ・アドオンを有効にすると、次のキー/値のペアを引数として渡すことができます。

NVIDIA GPUワーカー・ノードで実行されているワークロードが予期せず中断されないようにするために、Oracleでアドオンを自動的に更新するように指定するのではなく、デプロイするNVIDIA GPUプラグイン・アドオンのバージョンを選択することをお薦めします。

すべてのクラスタ・アドオンに共通の構成引数
キー(APIおよびCLI) キーの表示名(コンソール) 説明 必須/オプション デフォルト値 値の例
affinity affinity

アフィニティ・スケジューリング・ルールのグループ。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

オプション null null
nodeSelectors ノード・セレクター

ノード・セレクタおよびノード・ラベルを使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。

ポッドをノードで実行するには、ポッドのノード・セレクタのキー/値がノードのラベルと同じである必要があります。

nodeSelectorsを、ポッドのノード・セレクタとワーカー・ノードのラベルの両方に一致するキー/値ペアに設定します。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

オプション null {"foo":"bar", "foo2": "bar2"}

ポッドは、foo=barまたはfoo2=bar2ラベルを持つノードでのみ実行されます。

numOfReplicas numOfReplicas アドオン配備の複製の数。

(CoreDNSの場合は、かわりにnodesPerReplicaを使用します。)

必須 1

クラスタごとにアドオン・デプロイメントのレプリカを1つ作成します。

2

クラスタごとにアドオン・デプロイメントの2つのレプリカを作成します。

rollingUpdate rollingUpdate

maxSurgeおよびmaxUnavailableによるローリング更新の望ましい動作を制御します。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

オプション null null
tolerations 許容範囲

テイントおよび許容範囲を使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。

taintがあるノード上でポッドを実行するには、ポッドに対応する許容範囲が必要です。

tolerationsを、ポッドの許容範囲とワーカー・ノードのテイントの両方に一致するキー/値のペアに設定します。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

オプション null [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

この許容範囲を持つポッドのみが、tolerationKeyFoo=tolerationValBar:noScheduleテイントを持つワーカー・ノードで実行できます。

topologySpreadConstraints topologySpreadConstraints

指定されたトポロジ間で一致するポッドを分散する方法。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

オプション null null
このクラスタ・アドオンに固有の構成引数
キー(APIおよびCLI) キーの表示名(コンソール) 説明 必須/オプション デフォルト値 値の例
deviceIdStrategy デバイスID戦略

基礎となるランタイムにデバイスIDを渡すために使用する戦略。

次のいずれかです。

  • uuid
  • index
オプション uuid
deviceListStrategy デバイス・リスト戦略

基礎となるランタイムにデバイス・リストを渡すために使用する戦略。

サポートされる値:

  • envvar
  • volume-mounts
  • cdi-annotations
  • cdi-cri

カンマ区切りリストでは複数の値がサポートされています。

オプション envvar
driverRoot ドライバ・ルート NVIDIAドライバインストールのルートパス。 オプション /
failOnInitError FailOnInitError

初期化中にエラーが発生した場合にプラグインを失敗させるかどうか。

falseに設定すると、失敗するのではなく、プラグインを無期限にブロックします。

オプション true
migStrategy MIG戦略

MIG (マルチインスタンスGPU)デバイスをサポートしているGPUに公開する際に使用する戦略。

次のいずれかです。

  • none
  • single
  • mixed
オプション 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から導出されます。

trueに設定すると、クラスタ内にConfigMapを作成し、ConfigMap nvidia-device-plugin-configという名前を付け、構成引数の値を指定する必要があります。を参照してください。

ConfigMapは、nvidia-gpu-device-pluginデーモンセットによって参照されます。

オプション 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