Opérateur réseau NVIDIA

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

Arguments de configuration communs à la plupart des modules complémentaires 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é en Base64.

Non utilisé par:
  • Opérateur GPU Nvidia
Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez master.affinity
  • Opérateur réseau NVIDIA, utilisez operator.affinity
  • Pilote CSI SMB, utilisez contoller.affinity
  • Opérateur de GPU AMD, utilisez controllerManager.affinity
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é en Base64.

Non utilisé par:
  • Opérateur GPU NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez worker.nodeSelector
  • Opérateur réseau NVIDIA, utilisez operator.nodeSelectors
  • Opérateur de GPU AMD, utilisez selector ou controllerManager.nodeSelector
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.
Non utilisé par:
  • Module d'extension GPU AMD
  • Opérateur GPU NVIDIA
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • CoreDNS, utilisez nodesPerReplica
  • Repérage des fonctionnalités de noeud, utilisez master.replicaCount
  • Opérateur de GPU AMD, utilisez controllerManager.replicas
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 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:
  • Repérage des fonctionnalités du noeud
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • Opérateur de GPU NVIDIA, utilisez daemonsets.rollingUpdate.maxUnavailable
  • Opérateur de GPU AMD, utilisez upgradePolicy dans devicePlugin, metricsExporter, testRunner, configManager ou draDriver
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é en Base64.

Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez master.tolerations et/ou worker.tolerations
  • Opérateur de GPU NVIDIA, utilisez daemonsets.tolerations
  • Opérateur réseau NVIDIA, utilisez operator.tolerations
  • Pilote CSI SMB, utilisez controller.tolerations
  • Opérateur GPU AMD, utilisez les tolérances dans devicePlugin, metricsExporter, testRunner, configManager, draDriver ou controllerManager
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 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:
  • Repérage des fonctionnalités du noeud
  • Opérateur GPU NVIDIA
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
  • Opérateur de GPU AMD
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
operator.nodeSelectors nvidia-network-operator nodeSelectors Sélecteurs de noeud sur les pods NVIDIA Network Operator. Facultatif null
operator.tolerations tolérances nvidia-network-operator Tolérations sur les pods NVIDIA Network Operator. Facultatif null
nicClusterPolicy.tolerations tolérances nicClusterPolicy Tolérations pour les DaemonSets gérés par NicClusterPolicy. Facultatif null
nicClusterPolicy.deploymentTolerations nicClusterPolicy deploymentTolerances Tolérations pour les déploiements gérés par NicClusterPolicy. Facultatif null
operator.affinity affinité nvidia-network-operator Règles de planification d'affinité pour NVIDIA Network Operator. Format JSON en texte brut. Facultatif null
operator.resources ressources de conteneur nvidia-network-operator Les ressources NVIDIA Network Operator contrôlent les limites de ressources et les demandes pour le conteneur nvidia-network-operator. Format JSON en texte brut. Facultatif
{"limits": {"cpu": "500m", "memory": "128Mi"}, "requests": {"cpu": "5m", "memory": "64Mi"}}
operator.cniBinDirectory cniBinRépertoire Répertoire binaire CNI pour opérateur réseau NVIDIA. Facultatif /opt/cni/bin
operator.cniNetworkDirectory cniRéseauRépertoire Répertoire réseau CNI pour l'opérateur réseau NVIDIA. Facultatif /etc/cni/net.d
operator.admissionControllers.enabled operator.admissionControllers.enabled Activez les contrôleurs d'admission pour NVIDIA Network Operator. Facultatif false
sriovNetworkOperator.enabled sriovNetworkOperator.enabled Activez l'opérateur réseau SR-IOV NVIDIA. Facultatif false
sriov-network-operator.operator.resourcePrefix sriov-network-operator.operator.resourcePrefix Préfixe de ressource pour les ressources créées par l'opérateur réseau SR-IOV. Facultatif nvidia.com
sriov-network-operator.operator.admissionControllers.enabled sriov-network-operator.operator.admissionControllers.enabled Activez les contrôleurs d'admission pour l'opérateur réseau SR-IOV. Facultatif false
sriov-network-operator.operator.sriovOperatorConfig.configDaemonNodeSelectors sriov-network-operator.operator.sriovOperatorConfig.configSélecteurs de noeud de démon Configurez configDaemonNodeSelector pour sriovOperatorConfig. Facultatif
{"beta.kubernetes.io/os": "linux", "network.nvidia.com/operator.mofed.wait": "false"}
vfCreationMode vfCreationMode Mode de création de fonction virtuelle. Les valeurs valides sont sriovNetworkOperator et custom. Facultatif custom
customizeVfCreationConfigMap personnaliserVfCreationConfigMap Indiquez si la création de la carte de configuration vf-shape-config doit être ignorée. Facultatif false
skipNodeFeatureDiscoveryDependencyCheck ignorerNFDDependencyCheck Ignorez la vérification de dépendance de repérage des fonctionnalités de noeud. Facultatif false
Considérations relatives aux clusters volumineux

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
operator.nodeSelectors Y (Oui)

Contrôle l'emplacement de programmation des pods NVIDIA Network Operator.

  • Maintient l'opérateur sur des noeuds d'infrastructure ou de plan de contrôle stables.
  • Empêche l'opérateur de concurrencer les charges globales sur les noeuds de processus actif occupés.
  • Permet de garder la boucle de contrôle réseau prévisible lorsque le cluster comporte de nombreux noeuds et que l'état des noeuds change fréquemment.

Si cet argument est mal configuré :

  • L'opérateur peut s'exécuter sur des noeuds de processus actif surchargés.
  • Le pod de l'opérateur peut rester à l'état Pending si le sélecteur est trop restrictif ou incorrect.
  • Le rapprochement lié au réseau peut devenir lent ou incohérent si l'opérateur est instable.
  • Planifiez l'opérateur sur des noeuds d'infrastructure dédiés.
  • Utilisez un sélecteur simple et fiable.
  • Tenir l'opérateur à l'écart des pools de salariés avec des modifications fréquentes de la charge de travail.
operator.tolerations Y (Oui)

Contrôle les tolérances pour les pods d'opérateur réseau NVIDIA et les DaemonSets associés.

  • Permet à l'opérateur et à ses DaemonSets de s'exécuter sur des noeuds d'infrastructure endommagés.
  • Empêche les échecs de placement sur les noeuds de plan de contrôle ou de réseau dédié.
  • Prend en charge l'isolement lorsque les GPU ou les noeuds réseau sont endommagés.

Si cet argument est mal configuré :

  • L'opérateur ou ses DaemonSets peuvent rester dans l'état Pending sur les noeuds endommagés.
  • Les composants SR-IOV, pilote ou CNI peuvent ne pas s'exécuter sur les noeuds requis.
  • Certains noeuds peuvent ne jamais recevoir les fonctions réseau requises.
  • Faites correspondre les tolérances aux taches utilisées dans les pools de noeuds.
  • Utiliser des tolérances cohérentes entre les DaemonSets gérés par l'opérateur.
  • Testez à nouveau la configuration après avoir modifié les stratégies node-taint.
operator.affinity Y (Oui)

Contrôle les règles d'affinité de noeud pour les pods NVIDIA Network Operator.

  • Conserve l'opérateur sur la classe de noeuds appropriée.
  • Réduit la probabilité que l'opérateur soit affecté par l'attrition des noeuds de processus actif.
  • Permet à l'opérateur d'exécuter une infrastructure réseau proche de la stabilité.

Si cet argument est mal configuré :

  • L'opérateur peut être planifié sur des noeuds inappropriés.
  • Si la règle est trop restrictive, l'opérateur peut rester dans l'état Pending .
  • Si la règle est trop large, le placement risque de ne pas fournir la résilience voulue.
  • Utilisez des règles d'affinité pour préférer les noeuds stables.
  • Gardez les règles simples, sauf si des contraintes multi-zones ou multi-pool sont requises.
  • Associez des règles d'affinité à des tolérances si nécessaire.
operator.resources Y (Oui)

Définit les demandes de CPU et de mémoire et les limites pour le conteneur NVIDIA Network Operator.

L'opérateur coordonne les ressources réseau sur l'ensemble du cluster. Au fur et à mesure que le nombre de noeuds augmente, il doit traiter davantage d'objets, de modifications d'état de noeud et d'opérations de rapprochement.

L'opérateur s'appuie également sur les libellés de repérage des fonctionnalités de noeud pour déterminer les noeuds qui nécessitent des composants réseau.

Si les ressources sont sous-dimensionnées :

  • La réconciliation peut être lente.
  • Le déploiement du logiciel de mise en réseau peut être retardé.
  • L'opérateur peut devenir instable lors de changements fréquents de noeud ou de mises à jour de configuration.
  • Augmenter les ressources de CPU et de mémoire pour les clusters avec des modifications fréquentes des noeuds ou de nombreuses ressources personnalisées réseau.
  • Surveiller l'utilisation de l'UC par les opérateurs, l'utilisation de la mémoire et la latence de rapprochement.
  • Considérez cet argument comme un paramètre de dimensionnement de plan de contrôle.
operator.cniBinDirectory N

Contrôle le répertoire sur les noeuds où les fichiers binaires CNI sont déployés.

Les fichiers binaires CNI doivent être déployés dans le répertoire utilisé par l'exécution de conteneur. Un chemin incorrect peut affecter plusieurs noeuds en même temps.

Si cet argument est mal configuré :

  • Des pods peuvent être créés, mais la mise en réseau risque de ne pas être disponible.
  • Les fichiers binaires CNI peuvent être déployés sur un chemin d'hôte incorrect.
  • Le cluster peut apparaître configuré même si le réseau ne fonctionne pas.
  • Maintenez la valeur alignée sur la valeur par défaut d'exécution du noeud.
  • Modifiez la valeur uniquement lorsque l'exécution de conteneur utilise un autre répertoire binaire CNI.
  • Validez le chemin sur un pool de noeuds unique avant de l'appliquer globalement.
operator.cniNetworkDirectory N

Contrôle le répertoire hôte dans lequel les fichiers de configuration CNI sont déployés.

Les fichiers de configuration CNI doivent être placés dans le répertoire lu par le kubelet ou l'exécution de conteneur. Un répertoire incorrect peut affecter tous les noeuds qui utilisent la configuration.

Si cet argument est mal configuré :

  • Les fichiers de configuration CNI peuvent être déployés dans un répertoire que le kubelet ou l'exécution de conteneur ne lit pas.
  • Les noeuds peuvent apparaître configurés même si la mise en réseau secondaire ne fonctionne pas.
  • Le dépannage peut être difficile car l'opérateur peut sembler sain malgré la non-concordance de chemin.
  • Alignez la valeur sur le répertoire de configuration CNI utilisé par l'exécution du noeud.
  • Traitez l'argument comme un paramètre d'exécution hôte plutôt que comme un paramètre de stratégie de cluster.
  • Validez le placement de fichiers sur un seul GPU ou noeud réseau avant de l'appliquer globalement.
operator.admissionControllers.enabled N

Contrôle si l'opérateur réseau NVIDIA déploie son contrôleur d'admission.

Le contrôleur d'admission empêche toute configuration non valide d'entrer dans le cluster. Cela devient plus important lorsque de nombreux utilisateurs ou systèmes d'automatisation créent des ressources personnalisées réseau.

Si le contrôleur d'admission est désactivé :

  • La configuration SR-IOV, network-policy ou NIC non valide peut être acceptée.
  • Des paramètres non valides peuvent être appliqués à de nombreux noeuds avant que le problème ne soit détecté.
  • Les risques opérationnels augmentent dans les grands clusters.
  • Activez le contrôleur d'admission dans les environnements de production.
  • Assurez-vous que le gestionnaire de certificats reste fonctionnel si le webhook utilise des certificats générés.
sriovNetworkOperator.enabled N

Contrôle si l'opérateur réseau SR-IOV est déployé.

L'opérateur réseau SR-IOV fournit les composants SR-IOV requis pour la mise en réseau haute performance basée sur la fonction virtuelle, y compris certaines configurations RDMA et GPUDirect RDMA.

Si l'opérateur réseau SR-IOV est désactivé, le cas échéant :

  • Les fonctionnalités SR-IOV ne sont pas déployées.
  • Les noeuds peuvent ne pas fournir les ressources réseau requises par les charges globales.
  • Les chemins de réseau GPU et RDMA peuvent rester incomplets.
  • Activez l'opérateur réseau SR-IOV uniquement lorsque le cluster requiert SR-IOV.
  • Laissez-le désactivé dans les clusters qui n'utilisent pas la mise en réseau basée sur la fonction virtuelle.
  • Lorsqu'elle est activée, elle est considérée comme un composant réseau fondamental.
sriov-network-operator.operator.resourcePrefix N

Définit le préfixe utilisé pour les ressources créées par l'opérateur réseau SR-IOV.

Le préfixe détermine les noms de ressource étendus utilisés par Kubernetes et les charges globales. La modification du préfixe nécessite que tous les manifestes de charge globale utilisent les nouveaux noms de ressource.

Si cet argument est mal configuré :

  • Les charges globales peuvent demander un nom de ressource étendu incorrect.
  • Les pods peuvent rester à l'état Pending car le planificateur ne peut pas correspondre à la ressource demandée.
  • Les anciennes et les nouvelles conventions de dénomination des ressources peuvent être utilisées de manière incohérente.
  • Conservez la valeur par défaut sauf si une autre stratégie de dénomination est requise.
  • Ne modifiez pas le préfixe au hasard dans un cluster en cours d'exécution.
  • Assurez-vous que les manifestes de charge globale utilisent le même préfixe.
sriov-network-operator.operator.admissionControllers.enabled Y (Oui)

Contrôle les contrôleurs d'admission d'opérateur réseau SR-IOV.

Les contrôleurs d'admission détectent la configuration SR-IOV non valide avant d'atteindre les noeuds et aident à maintenir la cohérence des paramètres de la fonction virtuelle et de la carte d'interface réseau à mesure que le nombre de groupes de noeuds et de stratégies augmente.

Si les contrôleurs d'admission sont désactivés :

  • Une configuration SR-IOV non valide peut être appliquée.
  • Une configuration incorrecte peut s'étendre sur de nombreux noeuds.
  • La récupération suite à des erreurs de configuration peut être plus difficile.
  • Activez les contrôleurs d'admission dans les environnements de production.
  • Assurez-vous que le gestionnaire de certificats et la gestion des certificats de webhook sont en bon état.
  • Désactivez les contrôleurs d'admission uniquement lorsqu'il existe une raison spécifique d'éviter les webhooks d'admission.
sriov-network-operator.operator.sriovOperatorConfig.configDaemonNodeSelectors Y (Oui)

Sélectionne les noeuds que le démon de configuration SR-IOV configure.

Le sélecteur détermine les noeuds qui reçoivent la configuration SR-IOV. Dans un cluster de grande taille, un sélecteur incorrect peut affecter des centaines ou des milliers de noeuds.

Si cet argument est mal configuré :

  • La configuration SR-IOV peut être appliquée aux mauvais noeuds.
  • Les noeuds voulus peuvent ne pas recevoir la configuration.
  • Les fonctions de mise en réseau peuvent devenir incohérentes entre les pools de noeuds.
  • Alignez étroitement le sélecteur sur les étiquettes de noeud générées par la découverte des fonctionnalités de noeud.
  • Testez le sélecteur sur un petit groupe de noeuds avant de l'appliquer globalement.
vfCreationMode N

Détermine si la création de la fonction virtuelle est gérée automatiquement par l'opérateur ou par une logique personnalisée.

Un processus de création de fonctions virtuelles automatisé et cohérent réduit les différences de configuration entre les noeuds. La logique de création personnalisée offre plus de flexibilité, mais augmente la probabilité de configuration de noeud incohérente.

Si cet argument est mal configuré :

  • Il est possible que des fonctions virtuelles ne soient pas créées sur les noeuds attendus.
  • Les pools de noeuds peuvent se comporter différemment.
  • La configuration réseau peut dériver au fil du temps.
  • Utilisez la création de fonction virtuelle gérée par l'opérateur, sauf si une logique personnalisée est requise.
  • Evitez de mélanger les modes de création au sein du même domaine opérationnel.
  • Validez la création de fonctions virtuelles sur un pool de noeuds unique avant de l'appliquer globalement.
skipNodeFeatureDiscoveryDependencyCheck Y (Oui)

Détermine si l'opérateur ignore la vérification de dépendance de découverte de fonctionnalités de noeud.

L'omission de la vérification évite la validation des dépendances redondantes lorsque le repérage des fonctionnalités de noeud est géré séparément. Toutefois, l'administrateur du cluster est chargé de s'assurer que les étiquettes de noeud requises sont disponibles et restent correctes.

Si cet argument est mal configuré :

  • L'opérateur peut dépendre de la détection des fonctionnalités de noeud même s'il n'est pas installé ou en bon état.
  • Des étiquettes requises peuvent être manquantes.
  • Un ciblage de noeud incorrect pour SR-IOV et les composants associés peut affecter de nombreux noeuds.
  • Ignorez la vérification des dépendances uniquement lorsque le repérage des fonctionnalités de noeud est déjà déployé et vérifié.
  • Vérifiez que les étiquettes requises existent sur les noeuds prévus avant d'activer l'opérateur réseau NVIDIA.