Opérateur GPU NVIDIA
Lorsque vous activez l'extension de cluster NVIDIA GPU Operator, vous pouvez transmettre les paires clé/valeur suivantes en tant qu'arguments.
| 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é en 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é en 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 |
annulation |
Contrôle le comportement souhaité de la mise à jour non simultanée par maxSurge et maxUnavailable. Format JSON en texte brut ou encodé en 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é en 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 |
Contraintes de répartition de topologie |
Comment répartir les pods correspondants entre la topologie donnée. Format JSON en texte brut ou encodé en 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 |
|---|---|---|---|---|---|
skipNodeFeatureDiscoveryDependencyCheck |
skipNodeFeatureDiscoveryDependencyCheck | Ignorer la vérification de dépendance de repérage de fonctionnalités de noeud. | Facultatif | false |
|
disableNvidiaGpuPlugin |
DésactiverNvidiaGpuPlugin | Désactivez le module complémentaire NvidiaDevicePlugin existant et les ressources associées. | Facultatif | false |
|
cdi.enabled |
Activer l'interface de dispositif de conteneur | Indicateur d'activation de l'interface de dispositif de conteneur. | Facultatif |
|
|
cdi.default |
Activer l'Imagerie Cerner par défaut | Indicateur permettant à l'exécution du conteneur d'utiliser l'Imagerie Cerner comme option par défaut pour effectuer une injection de dispositif. | Facultatif |
Obsolète dans la version 25.10.x et versions ultérieures. |
|
daemonsets.labels |
Libellés DaemonSets | Libellés de tous les groupes de démons d'opérateur GPU. Correspondance JSON codée en Base64 ou texte JSON. | Facultatif | null |
|
daemonsets.annotations |
Annotations DaemonSets | Annotations pour tous les groupes de démons d'opérateurs GPU. Correspondance JSON codée en Base64 ou texte JSON. | Facultatif | null |
|
daemonsets.tolerations |
Tolérances DaemonSets | Tolérations pour tous les groupes de démons d'opérateurs GPU. Tableau JSON encodé en Base64 ou texte JSON. | Facultatif | null |
|
daemonsets.rollingUpdate.maxUnavailable |
Ensembles de démons MaxUnavailable | Nombre maximal de pods indisponibles pour la mise à jour non simultanée sur les jeux de démons d'opérateur GPU. | Facultatif | 1 |
|
dcgm.enabled |
Activer DCGM | Activez l'hostengine NVIDIA DCGM en tant que pod distinct. | Facultatif | false |
|
dcgm.args |
Arguments DCGM | Arguments pour DCGM Hostengine. Tableau JSON encodé en Base64 ou texte brut JSON. | Facultatif | null |
|
dcgm.env |
Env. DCGM | Variables d'environnement pour DCGM Hostengine. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
dcgm.containerResources |
Ressources DCGM | Demandes de ressources et limites pour le pod Hostengine DCGM. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
dcgmExporter.enabled |
Activer l'export DCGM | Activez le DaemonSet de l'exportateur DCGM pour les mesures. | Facultatif | true |
|
dcgmExporter.env |
Env. exportateur DCGM | Variables d'environnement pour DCGM Exportateur. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
dcgmExporter.resources |
Ressources d'exportateur DCGM | Demandes de ressources et limites pour le pod DCGM Export. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
dcgmExporter.service.internalTrafficPolicy |
Politique de trafic du service d'exportateur | InternalTrafficPolicy pour le service ClusterIP de DCGM Export. | Facultatif | Cluster |
|
dcgmExporter.serviceMonitor.enabled |
Activer ServiceMonitor | Activez un ServiceMonitor pour NVIDIA DCGM Export. | Facultatif | false |
|
dcgmExporter.serviceMonitor.interval |
Intervalle ServiceMonitor | Intervalle de mise au rebut pour NVIDIA DCGM Exportateur. Prend en charge y, w, d, h, m, s et ms. |
Facultatif | 15s |
|
dcgmExporter.serviceMonitor.honorLabels |
Libellés d'honneur de ServiceMonitor | Préférez les libellés de mesure cible sur les collisions. | Facultatif | false |
|
dcgmExporter.serviceMonitor.additionalLabels |
Libellés supplémentaires ServiceMonitor | Libellés supplémentaires pour ServiceMonitor. Carte JSON encodée en Base64 ou en texte brut JSON. | Facultatif | null |
|
dcgmExporter.serviceMonitor.relabelings |
Relabelings de ServiceMonitor | Modification de l'étiquette des règles pour ServiceMonitor. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
dcgmExporter.config.name |
Nom de la carte de configuration de l'exportateur | Nom de ConfigMap qui fournit la configuration des mesures personnalisées pour l'exportateur DCGM. | Facultatif | null |
|
migManager.enabled |
Activer le gestionnaire MIG | Activez le déploiement de NVIDIA MIG Manager. | Facultatif | false |
|
migManager.resources |
Ressources du gestionnaire MIG | Limites et demandes de ressource pour chaque pod MIG Manager. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
migManager.env |
Env. gestionnaire MIG | Variables d'environnement pour MIG Manager. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
migManager.config.name |
Nom de la correspondance de configuration MIG | Nom ConfigMap avec la configuration mig-parted pour le gestionnaire MIG. |
Facultatif | null |
|
migManager.gpuClientsConfig.name |
Configuration des clients GPU MIG | Nom ConfigMap avec la configuration gpu-clients pour le gestionnaire MIG. |
Facultatif | null |
|
devicePlugin.enabled |
Activer le plug-in d'appareil | Activez le module d'extension de périphérique NVIDIA Kubernetes. | Facultatif | true |
|
devicePlugin.args |
Arguments de plug-in de périphérique | Arguments pour le plug-in de périphérique. Tableau JSON encodé en Base64 ou texte brut JSON. | Facultatif | null |
|
devicePlugin.env |
Module d'extension d'appareil | Variables d'environnement pour le module d'extension de périphérique. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
devicePlugin.resources |
Ressources du plug-in de périphérique | Limites et demandes de ressource pour chaque pod de module d'extension de périphérique. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
devicePlugin.config.name |
Nom ConfigMap du plug-in de périphérique | Nom ConfigMap qui fournit la configuration du module d'extension de périphérique, partagé avec GFD, le cas échéant. | Facultatif | null |
|
devicePlugin.mps.root |
Racine MPS | Chemin racine MPS sur l'hôte. | Facultatif | /run/nvidia/mps |
|
toolkit.enabled |
Activer la boîte à outils | Activez le déploiement de NVIDIA Container Toolkit. | Facultatif | true |
|
toolkit.env |
Env. boîte à outils | Variables d'environnement pour Container Toolkit. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
toolkit.resources |
Ressources de la boîte à outils | Limites et demandes de ressources pour chaque pod Container Toolkit. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
toolkit.installDir |
Répertoire d'installation de boîte à outils | Répertoire d'installation des utilitaires Container Toolkit sur l'hôte. | Facultatif | /usr/local/nvidia |
|
mig.strategy |
Stratégie MIG | Stratégie MIG pour GFD et le plug-in de périphérique. Les valeurs valides sont none, single et mixed. |
Facultatif | single |
|
operator.logging.level |
Niveau de journalisation de l'opérateur | Niveau de journalisation Zap : debug, info, error ou un entier > 0 pour le niveau de détail personnalisé. |
Facultatif | info |
|
operator.resources |
Ressources de l'opérateur | Limites et demandes de ressource pour le pod GPU Operator. Texte brut JSON ou JSON encodé en Base64. | Facultatif | null |
|
hostPaths.rootFS |
Hôte RootFS | Chemin du système de fichiers root de l'hôte. Le chemin doit pouvoir être chrooté. | Facultatif | / |
|
hostPaths.driverInstallDir |
Répertoire d'installation du pilote | Répertoire racine des fichiers du pilote NVIDIA sur l'hôte. | Facultatif | /run/nvidia/driver |
|
driver.rdma.enabled |
Activer RDMA dans le pilote | Activez la prise en charge RDMA pour le pilote NVIDIA. | Facultatif | false |
|
driver.rdma.useHostMofed |
Utiliser l'hôte MOFED | Utilisez le Mellanox OFED fourni par l'hôte au lieu du Mellanox OFED fourni par le conteneur. | Facultatif | false |
Le 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 |
|---|---|---|---|---|---|
devicePlugin.*
|
Y (Oui) |
Contrôle le module d'extension de périphérique NVIDIA qui expose les GPU à Kubernetes. |
Le module d'extension de périphérique s'exécute sur chaque noeud de GPU et est responsable des éléments suivants :
La configuration affecte directement les décisions du planificateur et le placement de la charge de travail GPU. |
Si cet argument est mal configuré :
|
|
toolkit.*
|
Y (Oui) |
Contrôle la boîte à outils du conteneur NVIDIA, qui fournit un accès GPU à l'intérieur des conteneurs. |
La boîte à outils s'exécute sur chaque noeud de GPU et est nécessaire pour que les charges de travail de GPU accèdent aux GPU dans les conteneurs. |
Si cet argument est mal configuré, les pods peuvent être planifiés mais :
|
|
daemonsets.tolerations
|
Y (Oui) |
Contrôle si les composants de l'opérateur GPU peuvent être exécutés sur les noeuds GPU. |
Les noeuds GPU sont souvent endommagés. Tous les DaemonSets d'opérateur GPU doivent tolérer que ces taches s'exécutent sur les noeuds GPU. |
Si les tolérances requises sont manquantes :
|
|
daemonsets.rollingUpdate.maxUnavailable
|
Y (Oui) |
Contrôle le nombre de noeuds mis à jour simultanément. |
Cette valeur affecte le nombre de noeuds GPU qui sont temporairement indisponibles pendant une mise à jour. Dans un cluster de grande taille, une mise à jour peut affecter de nombreux noeuds. |
Si la valeur est trop élevée :
Si la valeur est trop faible, le déploiement de la mise à jour sur des milliers de noeuds peut prendre beaucoup de temps. |
Utilisez une valeur équilibrée qui n'est pas trop agressive. Définissez la valeur en fonction de la taille du cluster et de la quantité d'interruptions que les charges globales peuvent tolérer. |
operator.resources
|
Y (Oui) |
Définit les ressources de CPU et de mémoire pour le contrôleur de l'opérateur GPU. |
L'opérateur gère les composants, notamment :
Au fur et à mesure que le nombre de noeuds augmente, l'opérateur gère plus d'objets et nécessite plus de ressources. |
Si les ressources sont sous-dimensionnées :
|
|
cdi.enabled
|
Y (Oui) |
Active l'interface de dispositif de conteneur. |
|
Si l'interface Container Device Interface est désactivée, l'ancienne intégration d'exécution peut :
|
|
mig.strategy
|
Y (Oui) |
Contrôle le partitionnement de GPU multi-instances. |
Le partitionnement de GPU multi-instances permet aux charges globales de partager des GPU et affecte le comportement du planificateur. |
Si cet argument est mal configuré :
|
|
dcgmExporter.*
|
Y (Oui) |
Contrôle la collecte des mesures de GPU. |
L'exportateur génère des mesures GPU pour chaque noeud, ce qui augmente la charge de Prométhée et le trafic réseau à mesure que le nombre de noeuds GPU augmente. |
Si cet argument est mal configuré :
|
|
dcgm.*
|
Y (Oui) |
Contrôle le moteur hôte du gestionnaire GPU du centre de données NVIDIA. |
Le composant facultatif assure le suivi de l'état des GPU sur l'ensemble du cluster. |
|
|
skipNodeFeatureDiscoveryDependencyCheck
|
N |
Contrôle la vérification des dépendances pour le repérage des fonctionnalités de noeud. |
La vérification des dépendances affecte l'étiquetage des noeuds et la détection des GPU. |
Si le repérage des fonctionnalités de noeud est manquant :
|
|
disableNvidiaGpuPlugin
|
Y (Oui) |
Désactive le plug-in de périphérique GPU NVIDIA autonome. |
La désactivation du module d'extension autonome empêche l'exécution de modules d'extension de périphérique GPU en double dans le cluster. |
Si cet argument est configuré de manière incorrecte :
|
Désactivez le plug-in de périphérique de GPU NVIDIA autonome lorsque vous utilisez l'opérateur de GPU NVIDIA. |