24.6. Revenir au fournisseur de réseau SDN OpenShift
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 Copier lienLien copié sur presse-papiers!
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.
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
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 } }'
$ oc patch MachineConfigPool master --type='merge' --patch \ '{ "spec": { "paused": true } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Arrêter le pool de configuration de la machine de travail :
oc patch MachineConfigPool worker --type='merge' --patch \ '{ "spec":{ "paused" :true } }'
$ oc patch MachineConfigPool worker --type='merge' --patch \ '{ "spec":{ "paused" :true } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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" } }'
$ 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" } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow où :
bool
: Spécifie si la migration de la fonctionnalité doit être activée. La valeur par défaut esttrue
.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.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 est6081
.
Exemple de commande patch
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Attendez que le déploiement du jeu de démons Multus soit terminé.
oc -n openshift-multus rollout status daemonset/multus
$ oc -n openshift-multus rollout status daemonset/multus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le nom des nacelles Multus se présente sous la forme
multus-<xxxxx>
où<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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.
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 } }'
$ oc patch MachineConfigPool master --type='merge' --patch \ '{ "spec": { "paused": false } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrer le pool de configuration du travailleur :
oc patch MachineConfigPool worker --type='merge' --patch \ '{ "spec": { "paused": false } }'
$ oc patch MachineConfigPool worker --type='merge' --patch \ '{ "spec": { "paused": false } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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.
Confirmer l'état de la configuration de la nouvelle machine sur les hôtes :
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"
$ oc describe node | egrep "hostname|machineconfig"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que les affirmations suivantes sont vraies :
-
La valeur du champ
machineconfiguration.openshift.io/state
estDone
. -
La valeur du champ
machineconfiguration.openshift.io/currentConfig
est égale à la valeur du champmachineconfiguration.openshift.io/desiredConfig
.
-
La valeur du champ
Pour confirmer que la configuration de la machine est correcte, entrez la commande suivante :
oc get machineconfig <config_name> -o yaml
oc get machineconfig <config_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow où
<config_name>
est le nom de la machine configurée dans le champmachineconfiguration.openshift.io/currentConfig
.
Confirmez que la migration a réussi :
Pour confirmer que le plugin réseau est OpenShift SDN, entrez la commande suivante. La valeur de
status.networkType
doit êtreOpenShiftSDN
.oc get network.config/cluster -o jsonpath='{.status.networkType}{"\n"}'
$ oc get network.config/cluster -o jsonpath='{.status.networkType}{"\n"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour confirmer que les nœuds du cluster sont dans l'état
Ready
, entrez la commande suivante :oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.Pour dresser la liste des pods, entrez la commande suivante :
oc get pod -n openshift-machine-config-operator
$ oc get pod -n openshift-machine-config-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.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
$ oc logs <pod> -n openshift-machine-config-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow où
pod
est le nom d'un pod de démon de configuration de machine.- Résoudre les erreurs éventuelles dans les journaux affichés par la sortie de la commande précédente.
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}'
$ oc get pods --all-namespaces -o wide --sort-by='{.spec.nodeName}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si les pods d'un nœud sont dans un état d'erreur, redémarrez ce nœud.
N'effectuez les étapes suivantes que si la migration a réussi et que votre cluster est en bon état :
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 } }'
$ oc patch Network.operator.openshift.io cluster --type='merge' \ --patch '{ "spec": { "migration": null } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour supprimer la configuration OVN-Kubernetes, entrez la commande suivante :
oc patch Network.operator.openshift.io cluster --type='merge' \ --patch '{ "spec": { "defaultNetwork": { "ovnKubernetesConfig":null } } }'
$ oc patch Network.operator.openshift.io cluster --type='merge' \ --patch '{ "spec": { "defaultNetwork": { "ovnKubernetesConfig":null } } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour supprimer l'espace de noms du fournisseur de réseau OVN-Kubernetes, entrez la commande suivante :
oc delete namespace openshift-ovn-kubernetes
$ oc delete namespace openshift-ovn-kubernetes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow