23.3. Configuration de l'opérateur de réseau SR-IOV
L'opérateur de réseau SR-IOV (Single Root I/O Virtualization) gère les périphériques réseau SR-IOV et les attachements réseau dans votre cluster.
23.3.1. Configuration de l'opérateur de réseau SR-IOV
Il n'est normalement pas nécessaire de modifier la configuration de l'opérateur de réseau SR-IOV. La configuration par défaut est recommandée pour la plupart des cas d'utilisation. Ne procédez à la modification de la configuration que si le comportement par défaut de l'opérateur n'est pas compatible avec votre cas d'utilisation.
L'opérateur du réseau SR-IOV ajoute la ressource SriovOperatorConfig.sriovnetwork.openshift.io
CustomResourceDefinition. L'opérateur crée automatiquement une ressource personnalisée SriovOperatorConfig (CR) nommée default
dans l'espace de noms openshift-sriov-network-operator
.
Le CR default
contient la configuration de l'opérateur du réseau SR-IOV pour votre cluster. Pour modifier la configuration de l'opérateur, vous devez modifier ce CR.
23.3.1.1. SR-IOV Network Operator config custom resource (ressource personnalisée de configuration de l'opérateur de réseau)
Les champs de la ressource personnalisée sriovoperatorconfig
sont décrits dans le tableau suivant :
Field | Type | Description |
---|---|---|
|
|
Spécifie le nom de l'instance de l'opérateur de réseau SR-IOV. La valeur par défaut est |
|
|
Spécifie l'espace de noms de l'instance de l'opérateur de réseau SR-IOV. La valeur par défaut est |
|
| Spécifie la sélection de nœuds pour contrôler la planification du démon de configuration du réseau SR-IOV sur les nœuds sélectionnés. Par défaut, ce champ n'est pas défini et l'opérateur déploie le daemon SR-IOV Network Config sur les nœuds de travail. |
|
|
Indique s'il faut désactiver ou activer le processus de vidange du nœud lorsque vous appliquez une nouvelle stratégie pour configurer la carte d'interface réseau sur un nœud. La définition de ce champ sur
Pour les clusters à un seul nœud, définissez ce champ sur |
|
|
Indique s'il faut activer ou désactiver le jeu de démons Network Resources Injector. Par défaut, ce champ est défini sur |
|
|
Indique s'il faut activer ou désactiver le jeu de démons webhook du contrôleur d'admission de l'opérateur. Par défaut, ce champ est défini sur |
|
|
Spécifie le niveau de verbosité des journaux de l'opérateur. La valeur |
23.3.1.2. À propos de l'injecteur de ressources réseau
L'injecteur de ressources réseau est une application de contrôleur d'admission dynamique Kubernetes. Il fournit les capacités suivantes :
- Mutation des demandes et des limites de ressources dans une spécification de pod pour ajouter un nom de ressource SR-IOV conformément à une annotation de définition d'attachement au réseau SR-IOV.
-
Mutation d'une spécification de pod avec un volume d'API descendant pour exposer les annotations de pod, les étiquettes et les demandes et limites de pages énormes. Les conteneurs qui s'exécutent dans le pod peuvent accéder aux informations exposées en tant que fichiers sous le chemin
/etc/podnetinfo
.
Par défaut, l'injecteur de ressources réseau est activé par l'opérateur de réseau SR-IOV et s'exécute en tant que démon sur tous les nœuds du plan de contrôle. Voici un exemple de pods d'injecteur de ressources réseau fonctionnant dans un cluster avec trois nœuds de plan de contrôle :
$ oc get pods -n openshift-sriov-network-operator
Exemple de sortie
NAME READY STATUS RESTARTS AGE network-resources-injector-5cz5p 1/1 Running 0 10m network-resources-injector-dwqpx 1/1 Running 0 10m network-resources-injector-lktz5 1/1 Running 0 10m
23.3.1.3. À propos du webhook du contrôleur d'admission de l'opérateur de réseau SR-IOV
Le webhook du contrôleur d'admission de l'opérateur de réseau SR-IOV est une application de contrôleur d'admission dynamique Kubernetes. Il fournit les capacités suivantes :
-
Validation du CR
SriovNetworkNodePolicy
lors de sa création ou de sa mise à jour. -
Mutation du CR
SriovNetworkNodePolicy
en fixant la valeur par défaut des champspriority
etdeviceType
lors de la création ou de la mise à jour du CR.
Par défaut, le webhook du contrôleur d'admission de l'opérateur de réseau SR-IOV est activé par l'opérateur et s'exécute en tant que démon sur tous les nœuds du plan de contrôle.
Soyez prudent lorsque vous désactivez le webhook du contrôleur d'admission de l'opérateur de réseau SR-IOV. Vous pouvez désactiver le webhook dans des circonstances spécifiques, telles que le dépannage, ou si vous souhaitez utiliser des périphériques non pris en charge.
Voici un exemple de pods de webhooks du contrôleur d'admission de l'opérateur fonctionnant dans un cluster avec trois nœuds de plan de contrôle :
$ oc get pods -n openshift-sriov-network-operator
Exemple de sortie
NAME READY STATUS RESTARTS AGE operator-webhook-9jkw6 1/1 Running 0 16m operator-webhook-kbr5p 1/1 Running 0 16m operator-webhook-rpfrl 1/1 Running 0 16m
23.3.1.4. À propos des sélecteurs de nœuds personnalisés
Le démon SR-IOV Network Config découvre et configure les périphériques réseau SR-IOV sur les nœuds de la grappe. Par défaut, il est déployé sur tous les nœuds worker
du cluster. Vous pouvez utiliser des étiquettes de nœuds pour spécifier sur quels nœuds le démon SR-IOV Network Config s'exécute.
23.3.1.5. Désactivation ou activation de l'injecteur de ressources réseau
Pour désactiver ou activer l'injecteur de ressources réseau, qui est activé par défaut, suivez la procédure suivante.
Conditions préalables
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous en tant qu'utilisateur disposant des privilèges
cluster-admin
. - Vous devez avoir installé l'opérateur de réseau SR-IOV.
Procédure
Définissez le champ
enableInjector
. Remplacez<value>
parfalse
pour désactiver la fonctionnalité ou partrue
pour l'activer.$ oc patch sriovoperatorconfig default \ --type=merge -n openshift-sriov-network-operator \ --patch '{ "spec": { "enableInjector": <value> } }'
AstuceVous pouvez également appliquer le YAML suivant pour mettre à jour l'opérateur :
apiVersion: sriovnetwork.openshift.io/v1 kind: SriovOperatorConfig metadata: name: default namespace: openshift-sriov-network-operator spec: enableInjector: <value>
23.3.1.6. Désactivation ou activation du webhook du contrôleur d'admission de l'opérateur de réseau SR-IOV
Pour désactiver ou activer le webhook du contrôleur d'admission, qui est activé par défaut, suivez la procédure suivante.
Conditions préalables
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous en tant qu'utilisateur disposant des privilèges
cluster-admin
. - Vous devez avoir installé l'opérateur de réseau SR-IOV.
Procédure
Définissez le champ
enableOperatorWebhook
. Remplacez<value>
parfalse
pour désactiver la fonctionnalité ou partrue
pour l'activer :$ oc patch sriovoperatorconfig default --type=merge \ -n openshift-sriov-network-operator \ --patch '{ "spec": { "enableOperatorWebhook": <value> } }'
AstuceVous pouvez également appliquer le YAML suivant pour mettre à jour l'opérateur :
apiVersion: sriovnetwork.openshift.io/v1 kind: SriovOperatorConfig metadata: name: default namespace: openshift-sriov-network-operator spec: enableOperatorWebhook: <value>
23.3.1.7. Configuration d'un NodeSelector personnalisé pour le démon SR-IOV Network Config
Le démon SR-IOV Network Config découvre et configure les périphériques réseau SR-IOV sur les nœuds de la grappe. Par défaut, il est déployé sur tous les nœuds worker
du cluster. Vous pouvez utiliser des étiquettes de nœuds pour spécifier sur quels nœuds le démon SR-IOV Network Config s'exécute.
Pour spécifier les nœuds où le démon SR-IOV Network Config est déployé, suivez la procédure suivante.
Lorsque vous mettez à jour le champ configDaemonNodeSelector
, le démon SR-IOV Network Config est recréé sur chaque nœud sélectionné. Pendant que le démon est recréé, les utilisateurs du cluster ne peuvent pas appliquer de nouvelle politique de nœuds SR-IOV Network ni créer de nouveaux pods SR-IOV.
Procédure
Pour mettre à jour le sélecteur de nœuds de l'opérateur, entrez la commande suivante :
$ oc patch sriovoperatorconfig default --type=json \ -n openshift-sriov-network-operator \ --patch '[{ "op": "replace", "path": "/spec/configDaemonNodeSelector", "value": {<node_label>} }]'
Remplacez
<node_label>
par une étiquette à appliquer comme dans l'exemple suivant :"node-role.kubernetes.io/worker": ""
.AstuceVous pouvez également appliquer le YAML suivant pour mettre à jour l'opérateur :
apiVersion: sriovnetwork.openshift.io/v1 kind: SriovOperatorConfig metadata: name: default namespace: openshift-sriov-network-operator spec: configDaemonNodeSelector: <node_label>
23.3.1.8. Configuration de l'opérateur de réseau SR-IOV pour les installations à nœud unique
Par défaut, l'opérateur de réseau SR-IOV draine les charges de travail d'un nœud avant chaque changement de politique. L'opérateur effectue cette action pour s'assurer qu'aucune charge de travail n'utilise les fonctions virtuelles avant la reconfiguration.
Pour les installations sur un seul nœud, il n'y a pas d'autres nœuds pour recevoir les charges de travail. Par conséquent, l'opérateur doit être configuré pour ne pas drainer les charges de travail du nœud unique.
Après avoir exécuté la procédure suivante pour désactiver les charges de travail drainantes, vous devez supprimer toute charge de travail utilisant une interface réseau SR-IOV avant de modifier toute stratégie de nœud de réseau SR-IOV.
Conditions préalables
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous en tant qu'utilisateur disposant des privilèges
cluster-admin
. - Vous devez avoir installé l'opérateur de réseau SR-IOV.
Procédure
Pour attribuer la valeur
true
au champdisableDrain
, entrez la commande suivante :$ oc patch sriovoperatorconfig default --type=merge \ -n openshift-sriov-network-operator \ --patch '{ "spec": { "disableDrain": true } }'
AstuceVous pouvez également appliquer le YAML suivant pour mettre à jour l'opérateur :
apiVersion: sriovnetwork.openshift.io/v1 kind: SriovOperatorConfig metadata: name: default namespace: openshift-sriov-network-operator spec: disableDrain: true
23.3.1.9. Déploiement de l'opérateur SR-IOV pour les plans de contrôle hébergés
Les plans de contrôle hébergés sont une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.
Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.
Après avoir configuré et déployé votre cluster de services d'hébergement, vous pouvez créer un abonnement à l'opérateur SR-IOV sur un cluster hébergé. Le pod SR-IOV s'exécute sur les machines de travail plutôt que sur le plan de contrôle.
Conditions préalables
Vous avez configuré et déployé le cluster hébergé.
Procédure
Créer un espace de noms et un groupe d'opérateurs :
apiVersion: v1 kind: Namespace metadata: name: openshift-sriov-network-operator --- apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: sriov-network-operators namespace: openshift-sriov-network-operator spec: targetNamespaces: - openshift-sriov-network-operator
Créer un abonnement à l'opérateur SR-IOV :
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: sriov-network-operator-subsription namespace: openshift-sriov-network-operator spec: channel: "4.12" name: sriov-network-operator config: nodeSelector: node-role.kubernetes.io/worker: "" source: s/qe-app-registry/redhat-operators sourceNamespace: openshift-marketplace
Vérification
Pour vérifier que l'opérateur SR-IOV est prêt, exécutez la commande suivante et affichez le résultat :
$ oc get csv -n openshift-sriov-network-operator
Exemple de sortie
NAME DISPLAY VERSION REPLACES PHASE sriov-network-operator.4.12.0-202211021237 SR-IOV Network Operator 4.12.0-202211021237 sriov-network-operator.4.12.0-202210290517 Succeeded
Pour vérifier que les pods SR-IOV sont déployés, exécutez la commande suivante :
$ oc get pods -n openshift-sriov-network-operator