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.
| 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. Non utilisé par:
Equivalents possibles :
|
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 Format JSON en texte brut ou encodé Base64. Non utilisé par:
Equivalents possibles :
|
Facultatif | NULL | {"foo":"bar", "foo2": "bar2"}Le pod s'exécutera uniquement sur les noeuds possédant le libellé |
numOfReplicas |
numOfReplicas | Nombre de répliques du déploiement de l'extension. Non utilisé par:
Equivalents possibles :
|
Requis | 1Crée une réplique du déploiement d'extension par cluster. |
2Cré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. Non utilisé par:
Equivalents possibles :
|
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 Format JSON en texte brut ou encodé Base64. Equivalents possibles :
|
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 |
topologySpreadConstraints |
topologySpreadConstraints |
Comment répartir les pods correspondants entre la topologie donnée. Format JSON en texte brut ou encodé Base64. Non utilisé par:
|
Facultatif | NULL | NULL |
| 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 :
|
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 :
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 |
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 :
|
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 Le paramètre ConfigMap est référencé par le jeu de démons |
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: uuidLe tableau suivant décrit les considérations relatives à la configuration de ce module complémentaire de cluster dans les clusters volumineux.
| Nom d'argument | Nombre de noeuds de processus métier de rôles | Description | à mesure que la taille du cluster augmente | Risques | Recommandation |
|---|---|---|---|---|---|
nvidia-gpu-device-plugin.ContainerResources
|
Y (Oui) |
Définit les demandes de CPU et de mémoire et les limites pour les pods de module d'extension de GPU NVIDIA. |
Le module d'extension s'exécute sur chaque noeud de GPU en tant que DaemonSet, de sorte que l'utilisation totale des ressources augmente avec le nombre de noeuds de GPU. Les noeuds GPU supplémentaires augmentent :
|
Si les ressources sont sous-dimensionnées :
|
|
affinity / nodeSelectors / tolerations
|
Y (Oui) |
Contrôlez les noeuds sur lesquels les pods de module d'extension GPU NVIDIA s'exécutent. |
|
Si ces arguments sont mal configurés :
|
|
topologySpreadConstraints
|
N |
Contrôle la distribution des pods de module d'extension de GPU NVIDIA entre les noeuds et les domaines de disponibilité. |
Les contraintes de répartition de topologie permettent de maintenir une répartition uniforme dans les clusters et clusters multidomaines avec des pools de noeuds GPU hétérogènes. |
Si les contraintes de répartition de topologie ne sont pas configurées :
|
Utilisez des contraintes de répartition de topologie pour les clusters de GPU volumineux qui couvrent plusieurs domaines de disponibilité ou contiennent des pools de noeuds de GPU hétérogènes. |
numOfReplicas
|
N |
Contrôle le nombre de répliques pour les composants qui prennent en charge le redimensionnement basé sur les répliques. |
Le module d'extension GPU NVIDIA s'exécute en tant que DaemonSet avec un pod sur chaque noeud GPU éligible. Il n'est pas mis à l'échelle en modifiant le nombre de répliques. |
Non applicable | Non applicable |
rollingUpdate
|
N |
Contrôle la façon dont les pods de plug-in de GPU NVIDIA sont mis à jour. |
Dans les clusters de grande taille, une mise à jour peut affecter de nombreux noeuds GPU et réduire temporairement la disponibilité des GPU. |
|
|
failOnInitError
|
Y (Oui) |
Contrôle le comportement du plug-in en cas d'échec de l'initialisation. |
Les échecs d'initialisation sont plus susceptibles de se produire quelque part dans le cluster à mesure que le nombre de noeuds GPU augmente. |
|
|
deviceListStrategy / deviceIdStrategy
|
N |
Contrôlez comment les périphériques GPU sont identifiés et exposés aux conteneurs. |
Les stratégies sélectionnées affectent l'intégration de l'exécution des conteneurs et l'efficacité de l'allocation de GPU sur les noeuds GPU. |
Si la configuration est incorrecte, les périphériques GPU peuvent ne pas être identifiés ou injectés de manière cohérente dans les conteneurs. Cela peut entraîner des échecs de charge globale de GPU, des affectations de périphériques incorrectes ou des problèmes de planification sur les noeuds GPU. |
Configurez deviceListStrategy et deviceIdStrategy pour qu'ils correspondent à votre environnement d'exécution de conteneur et de GPU, et utilisez la stratégie d'identification de périphérique uuid par défaut, sauf si un cas d'utilisation validé en requiert un autre. |
migStrategy
|
N |
Contrôle la façon dont les ressources GPU multi-instances NVIDIA sont exposées à Kubernetes. |
Le GPU multi-instance peut améliorer le partage et l'utilisation des GPU à mesure que le nombre de charges de travail de GPU augmente. |
Si cet argument est mal configuré :
|
Utilisez le GPU multi-instance uniquement lorsque le partitionnement GPU est requis. |