Module d'extension GPU NVIDIA

Lorsque vous activez l'extension de cluster de modules d'extension GPU NVIDIA, vous pouvez transmettre les paires clé/valeur suivantes en tant qu'arguments.

Notez que pour vous assurer que les charges de travail exécutées sur les noeuds de processus actif de GPU NVIDIA ne sont pas interrompues de manière inattendue, nous vous recommandons de choisir la version du module d'extension de GPU NVIDIA à déployer, plutôt que de spécifier que vous souhaitez qu'Oracle mette à jour le module automatiquement.

Arguments de configuration communs à tous les modules de cluster
Clé (API et CLI) Nom d'affichage de la clé (console) Description Obligatoire/Facultatif Valeur par défaut Exemple de valeur
affinity affinité

Groupe de règles de programmation d'affinité.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL NULL
nodeSelectors Sélecteurs de noeud

Vous pouvez utiliser des sélecteurs de noeud et des libellés de noeud pour contrôler les noeuds de processus actif sur lesquels les pods d'extension sont exécutés.

Pour qu'un pod s'exécute sur un noeud, le sélecteur de noeud du pod doit avoir la même clé/valeur que l'étiquette du noeud.

Définissez nodeSelectors sur une paire clé/valeur correspondant à la fois au sélecteur de noeud du pod et au libellé du noeud de processus actif.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL {"foo":"bar", "foo2": "bar2"}

Le pod s'exécutera uniquement sur les noeuds possédant le libellé foo=bar ou foo2=bar2.

numOfReplicas numOfReplicas Nombre de répliques du déploiement de l'extension.

(Pour CoreDNS, utilisez plutôt nodesPerReplica.)

Requis 1

Crée une réplique du déploiement d'extension par cluster.

2

Crée deux répliques du déploiement d'extension par cluster.

rollingUpdate rollingUpdate

Contrôle le comportement souhaité de la mise à jour non simultanée par maxSurge et maxUnavailable.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL NULL
tolerations tolérances

Vous pouvez utiliser des tolérances et des taches pour contrôler les noeuds de processus actif sur lesquels les pods d'extension s'exécutent.

Pour qu'un pod s'exécute sur un noeud présentant une entorse, le pod doit avoir une tolérance correspondante.

Définissez tolerations sur une paire clé/valeur correspondant à la fois à la tolérance du pod et à la tache du noeud de processus actif.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Seuls les pods présentant cette tolérance peuvent être exécutés sur des noeuds de processus actif présentant la tache tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologySpreadConstraints

Comment répartir les pods correspondants entre la topologie donnée.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL NULL
Arguments de configuration propres à ce module complémentaire de cluster
Clé (API et CLI) Nom d'affichage de la clé (console) Description Obligatoire/Facultatif Valeur par défaut Exemple de valeur
deviceIdStrategy Stratégie d'ID de périphérique

Stratégie à utiliser pour transmettre les ID de périphérique à l'exécution sous-jacente.

L'une des options suivantes :

  • uuid
  • index
Facultatif uuid
deviceListStrategy Stratégie de liste d'appareils

Stratégie à utiliser pour transmettre la liste des périphériques à l'exécution sous-jacente.

Valeurs prises en charge :

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

Plusieurs valeurs sont prises en charge, dans une liste séparée par des virgules.

Facultatif envvar
driverRoot Racine du pilote Chemin racine de l'installation du pilote NVIDIA. Facultatif /
failOnInitError FailOnInitError

Indique si le module d'extension doit échouer en cas d'erreur lors de l'initialisation.

Lorsqu'elle est définie sur false, le module d'extension est bloqué indéfiniment au lieu d'échouer.

Facultatif true
migStrategy Stratégie MIG

Stratégie à utiliser pour exposer les périphériques MIG (Multi-Instance GPU) sur les GPU qui les prennent en charge.

L'une des options suivantes :

  • none
  • single
  • mixed
Facultatif none
nvidia-gpu-device-plugin.ContainerResources ressources de conteneur nvidia-gpu-device-plugin

Vous pouvez spécifier les quantités de ressources demandées par les conteneurs d'extension et définir les limites d'utilisation des ressources que les conteneurs d'extension ne peuvent pas dépasser.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Créez des conteneurs d'extension qui demandent 100 milllicores de CPU et 100 mégaoctets de mémoire. Limitez les conteneurs d'extension à 500 milllicores de CPU et 200 mégaoctets de mémoire.

passDeviceSpecs Transmettre les spécifications d'appareil Indique si les chemins et les autorisations de noeud de périphérique souhaités doivent être transmis pour tous les périphériques NVIDIA alloués au conteneur. Facultatif false
useConfigFile Utiliser le fichier de configuration de ConfigMap

Indique si un fichier de configuration doit être utilisé pour configurer le module d'extension de périphérique Nvidia pour Kubernetes. Le fichier de configuration est dérivé d'un fichier ConfigMap.

Si la valeur est true, vous devez créer une valeur ConfigMap dans le cluster, nommer la valeur ConfigMap nvidia-device-plugin-config et indiquer des valeurs pour les arguments de configuration. Reportez-vous à l'Example.

Le paramètre ConfigMap est référencé par le jeu de démons nvidia-gpu-device-plugin.

Facultatif false

Exemple de 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