Rechercher

24.6. Revenir au fournisseur de réseau SDN OpenShift

download PDF

En tant qu'administrateur de cluster, vous pouvez revenir au plugin réseau OpenShift SDN à partir du plugin réseau OVN-Kubernetes si la migration vers OVN-Kubernetes échoue.

24.6.1. Repousser le plugin réseau vers OpenShift SDN

En tant qu'administrateur de cluster, vous pouvez revenir sur votre cluster avec le plugin réseau OpenShift SDN Container Network Interface (CNI). Pendant le rollback, vous devez redémarrer chaque nœud de votre cluster.

Important

Ne revenir à OpenShift SDN que si la migration vers OVN-Kubernetes échoue.

Conditions préalables

  • Installez le CLI OpenShift (oc).
  • Accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
  • Un cluster installé sur une infrastructure configurée avec le plugin réseau OVN-Kubernetes.

Procédure

  1. Arrêter tous les pools de configuration de machines gérés par le MCO (Machine Config Operator) :

    • Arrêter le pool de configuration maître :

      $ oc patch MachineConfigPool master --type='merge' --patch \
        '{ "spec": { "paused": true } }'
    • Arrêter le pool de configuration de la machine de travail :

      $ oc patch MachineConfigPool worker --type='merge' --patch \
        '{ "spec":{ "paused" :true } }'
  2. Pour commencer la migration, réinitialisez le plugin réseau à OpenShift SDN en entrant les commandes suivantes :

    $ oc patch Network.operator.openshift.io cluster --type='merge' \
      --patch '{ "spec": { "migration": { "networkType": "OpenShiftSDN" } } }'
    
    $ oc patch Network.config.openshift.io cluster --type='merge' \
      --patch '{ "spec": { "networkType": "OpenShiftSDN" } }'
  3. Facultatif : Vous pouvez désactiver la migration automatique de plusieurs capacités OVN-Kubernetes vers les équivalents SDN d'OpenShift :

    • IP de sortie
    • Pare-feu de sortie
    • Multidiffusion

    Pour désactiver la migration automatique de la configuration pour l'une des fonctionnalités OpenShift SDN mentionnées précédemment, spécifiez les clés suivantes :

    $ oc patch Network.operator.openshift.io cluster --type='merge' \
      --patch '{
        "spec": {
          "migration": {
            "networkType": "OpenShiftSDN",
            "features": {
              "egressIP": <bool>,
              "egressFirewall": <bool>,
              "multicast": <bool>
            }
          }
        }
      }'

    où :

    bool: Spécifie si la migration de la fonctionnalité doit être activée. La valeur par défaut est true.

  4. Facultatif : vous pouvez personnaliser les paramètres suivants pour OpenShift SDN afin de répondre aux exigences de votre infrastructure réseau :

    • Unité de transmission maximale (MTU)
    • Port VXLAN

    Pour personnaliser l'un ou l'autre des paramètres susmentionnés, ou les deux, personnalisez et entrez la commande suivante. Si vous n'avez pas besoin de modifier la valeur par défaut, omettez la clé du correctif.

    $ oc patch Network.operator.openshift.io cluster --type=merge \
      --patch '{
        "spec":{
          "defaultNetwork":{
            "openshiftSDNConfig":{
              "mtu":<mtu>,
              "vxlanPort":<port>
        }}}}'
    mtu
    Le MTU pour le réseau superposé VXLAN. Cette valeur est normalement configurée automatiquement, mais si les nœuds de votre cluster n'utilisent pas tous le même MTU, vous devez la définir explicitement à 50 moins que la plus petite valeur MTU du nœud.
    port
    Le port UDP pour le réseau superposé VXLAN. Si aucune valeur n'est spécifiée, la valeur par défaut est 4789. Le port ne peut pas être le même que le port Geneve utilisé par OVN-Kubernetes. La valeur par défaut du port Geneve est 6081.

    Exemple de commande patch

    $ oc patch Network.operator.openshift.io cluster --type=merge \
      --patch '{
        "spec":{
          "defaultNetwork":{
            "openshiftSDNConfig":{
              "mtu":1200
        }}}}'

  5. Attendez que le déploiement du jeu de démons Multus soit terminé.

    $ oc -n openshift-multus rollout status daemonset/multus

    Le nom des nacelles Multus se présente sous la forme multus-<xxxxx><xxxxx> est une séquence aléatoire de lettres. Le redémarrage des pods peut prendre quelques instants.

    Exemple de sortie

    Waiting for daemon set "multus" rollout to finish: 1 out of 6 new pods have been updated...
    ...
    Waiting for daemon set "multus" rollout to finish: 5 of 6 updated pods are available...
    daemon set "multus" successfully rolled out

  6. Pour terminer le retour en arrière, redémarrez chaque nœud de votre cluster. Par exemple, vous pouvez utiliser un script bash similaire au suivant. Le script suppose que vous pouvez vous connecter à chaque hôte en utilisant ssh et que vous avez configuré sudo pour ne pas demander de mot de passe.

    #!/bin/bash
    
    for ip in $(oc get nodes  -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}')
    do
       echo "reboot node $ip"
       ssh -o StrictHostKeyChecking=no core@$ip sudo shutdown -r -t 3
    done

    Si l'accès ssh n'est pas disponible, vous pourrez peut-être redémarrer chaque nœud via le portail de gestion de votre fournisseur d'infrastructure.

  7. Une fois que les nœuds de votre cluster ont redémarré, démarrez tous les pools de configuration des machines :

    • Démarrer le pool de configuration maître :

      $ oc patch MachineConfigPool master --type='merge' --patch \
        '{ "spec": { "paused": false } }'
    • Démarrer le pool de configuration du travailleur :

      $ oc patch MachineConfigPool worker --type='merge' --patch \
        '{ "spec": { "paused": false } }'

    Lorsque le MCO met à jour les machines de chaque pool de configuration, il redémarre chaque nœud.

    Par défaut, le MCO ne met à jour qu'une seule machine par pool à la fois, de sorte que le temps nécessaire à la migration augmente avec la taille du cluster.

  8. Confirmer l'état de la configuration de la nouvelle machine sur les hôtes :

    1. Pour répertorier l'état de la configuration de la machine et le nom de la configuration de la machine appliquée, entrez la commande suivante :

      $ oc describe node | egrep "hostname|machineconfig"

      Exemple de sortie

      kubernetes.io/hostname=master-0
      machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b
      machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b
      machineconfiguration.openshift.io/reason:
      machineconfiguration.openshift.io/state: Done

      Vérifiez que les affirmations suivantes sont vraies :

      • La valeur du champ machineconfiguration.openshift.io/state est Done.
      • La valeur du champ machineconfiguration.openshift.io/currentConfig est égale à la valeur du champ machineconfiguration.openshift.io/desiredConfig.
    2. Pour confirmer que la configuration de la machine est correcte, entrez la commande suivante :

      oc get machineconfig <config_name> -o yaml

      <config_name> est le nom de la machine configurée dans le champ machineconfiguration.openshift.io/currentConfig.

  9. Confirmez que la migration a réussi :

    1. Pour confirmer que le plugin réseau est OpenShift SDN, entrez la commande suivante. La valeur de status.networkType doit être OpenShiftSDN.

      $ oc get network.config/cluster -o jsonpath='{.status.networkType}{"\n"}'
    2. Pour confirmer que les nœuds du cluster sont dans l'état Ready, entrez la commande suivante :

      $ oc get nodes
    3. Si un nœud est bloqué à l'état NotReady, examinez les journaux de pods du démon de configuration de la machine et résolvez les erreurs éventuelles.

      1. Pour dresser la liste des pods, entrez la commande suivante :

        $ oc get pod -n openshift-machine-config-operator

        Exemple de sortie

        NAME                                         READY   STATUS    RESTARTS   AGE
        machine-config-controller-75f756f89d-sjp8b   1/1     Running   0          37m
        machine-config-daemon-5cf4b                  2/2     Running   0          43h
        machine-config-daemon-7wzcd                  2/2     Running   0          43h
        machine-config-daemon-fc946                  2/2     Running   0          43h
        machine-config-daemon-g2v28                  2/2     Running   0          43h
        machine-config-daemon-gcl4f                  2/2     Running   0          43h
        machine-config-daemon-l5tnv                  2/2     Running   0          43h
        machine-config-operator-79d9c55d5-hth92      1/1     Running   0          37m
        machine-config-server-bsc8h                  1/1     Running   0          43h
        machine-config-server-hklrm                  1/1     Running   0          43h
        machine-config-server-k9rtx                  1/1     Running   0          43h

        Les noms des modules de démon de configuration sont au format suivant : machine-config-daemon-<seq>. La valeur <seq> est une séquence alphanumérique aléatoire de cinq caractères.

      2. Pour afficher le journal des pods pour chaque pod de démon de configuration de machine présenté dans la sortie précédente, entrez la commande suivante :

        $ oc logs <pod> -n openshift-machine-config-operator

        pod est le nom d'un pod de démon de configuration de machine.

      3. Résoudre les erreurs éventuelles dans les journaux affichés par la sortie de la commande précédente.
    4. Pour confirmer que vos pods ne sont pas dans un état d'erreur, entrez la commande suivante :

      $ oc get pods --all-namespaces -o wide --sort-by='{.spec.nodeName}'

      Si les pods d'un nœud sont dans un état d'erreur, redémarrez ce nœud.

  10. N'effectuez les étapes suivantes que si la migration a réussi et que votre cluster est en bon état :

    1. Pour supprimer la configuration de la migration de l'objet de configuration Opérateur de réseau de cluster, entrez la commande suivante :

      $ oc patch Network.operator.openshift.io cluster --type='merge' \
        --patch '{ "spec": { "migration": null } }'
    2. Pour supprimer la configuration OVN-Kubernetes, entrez la commande suivante :

      $ oc patch Network.operator.openshift.io cluster --type='merge' \
        --patch '{ "spec": { "defaultNetwork": { "ovnKubernetesConfig":null } } }'
    3. Pour supprimer l'espace de noms du fournisseur de réseau OVN-Kubernetes, entrez la commande suivante :

      $ oc delete namespace openshift-ovn-kubernetes
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.