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

Important

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.

Note

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 :

Tableau 23.2. SR-IOV Network Operator config custom resource (ressource personnalisée de configuration de l'opérateur de réseau)
FieldTypeDescription

metadata.name

string

Spécifie le nom de l'instance de l'opérateur de réseau SR-IOV. La valeur par défaut est default. Ne pas définir une valeur différente.

metadata.namespace

string

Spécifie l'espace de noms de l'instance de l'opérateur de réseau SR-IOV. La valeur par défaut est openshift-sriov-network-operator. Ne pas définir une valeur différente.

spec.configDaemonNodeSelector

string

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.

spec.disableDrain

boolean

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 true facilite le développement de logiciels et l'installation d'OpenShift Container Platform sur un seul nœud. Par défaut, ce champ n'est pas défini.

Pour les clusters à un seul nœud, définissez ce champ sur true après avoir installé l'opérateur. Ce champ doit rester à true.

spec.enableInjector

boolean

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 true.

spec.enableOperatorWebhook

boolean

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 true.

spec.logLevel

integer

Spécifie le niveau de verbosité des journaux de l'opérateur. La valeur 0 permet d'afficher uniquement les journaux de base. La valeur 2 permet d'afficher tous les journaux disponibles. Par défaut, ce champ est défini sur 2.

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 champs priority et deviceType 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.

Note

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> par false pour désactiver la fonctionnalité ou par true pour l'activer.

    $ oc patch sriovoperatorconfig default \
      --type=merge -n openshift-sriov-network-operator \
      --patch '{ "spec": { "enableInjector": <value> } }'
    Astuce

    Vous 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> par false pour désactiver la fonctionnalité ou par true pour l'activer :

    $ oc patch sriovoperatorconfig default --type=merge \
      -n openshift-sriov-network-operator \
      --patch '{ "spec": { "enableOperatorWebhook": <value> } }'
    Astuce

    Vous 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.

Important

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": "".

    Astuce

    Vous 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.

Important

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 champ disableDrain, entrez la commande suivante :

    $ oc patch sriovoperatorconfig default --type=merge \
      -n openshift-sriov-network-operator \
      --patch '{ "spec": { "disableDrain": true } }'
    Astuce

    Vous 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

Important

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

  1. 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
  2. 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

  1. 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

  2. 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

23.3.2. Prochaines étapes

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.