7.2. Prévention des mises à jour de la charge de travail lors d'une mise à jour EUS-to-EUS
Lorsque vous passez d'une version Extended Update Support (EUS) à la suivante, vous devez désactiver manuellement les mises à jour automatiques des charges de travail pour empêcher OpenShift Virtualization de migrer ou d'expulser des charges de travail pendant le processus de mise à jour.
Conditions préalables
- Vous utilisez une version EUS d'OpenShift Container Platform et souhaitez passer à la version EUS suivante. Vous n'avez pas encore mis à jour la version impaire entre les deux.
- Vous avez lu "Preparing to perform an EUS-to-EUS update" (Préparation à la mise à jour EUS-to-EUS) et vous avez pris connaissance des mises en garde et des exigences relatives à votre cluster OpenShift Container Platform.
- Vous avez pausé les pools de configuration des machines des nœuds de travail comme indiqué dans la documentation d'OpenShift Container Platform.
- Il est recommandé d'utiliser la stratégie d'approbation par défaut Automatic. Si vous utilisez la stratégie d'approbation Manual, vous devez approuver toutes les mises à jour en attente dans la console web. Pour plus de détails, reportez-vous à la section "Approbation manuelle d'une mise à jour de l'opérateur en attente".
Procédure
Sauvegardez la configuration actuelle de
workloadUpdateMethodsen exécutant la commande suivante :$ WORKLOAD_UPDATE_METHODS=$(oc get kv kubevirt-kubevirt-hyperconverged -n openshift-cnv -o jsonpath='{.spec.workloadUpdateStrategy.workloadUpdateMethods}')Désactivez toutes les méthodes de mise à jour de la charge de travail en exécutant la commande suivante :
$ oc patch hco kubevirt-hyperconverged -n openshift-cnv --type json -p '[{"op":"replace","path":"/spec/workloadUpdateStrategy/workloadUpdateMethods", "value":[]}]'Exemple de sortie
hyperconverged.hco.kubevirt.io/kubevirt-hyperconverged patchedAssurez-vous que l'opérateur
HyperConvergedest bienUpgradeableavant de continuer. Entrez la commande suivante et surveillez la sortie :$ oc get hco kubevirt-hyperconverged -n openshift-cnv -o json | jq ".status.conditions"Exemple 7.1. Exemple de sortie
[ { "lastTransitionTime": "2022-12-09T16:29:11Z", "message": "Reconcile completed successfully", "observedGeneration": 3, "reason": "ReconcileCompleted", "status": "True", "type": "ReconcileComplete" }, { "lastTransitionTime": "2022-12-09T20:30:10Z", "message": "Reconcile completed successfully", "observedGeneration": 3, "reason": "ReconcileCompleted", "status": "True", "type": "Available" }, { "lastTransitionTime": "2022-12-09T20:30:10Z", "message": "Reconcile completed successfully", "observedGeneration": 3, "reason": "ReconcileCompleted", "status": "False", "type": "Progressing" }, { "lastTransitionTime": "2022-12-09T16:39:11Z", "message": "Reconcile completed successfully", "observedGeneration": 3, "reason": "ReconcileCompleted", "status": "False", "type": "Degraded" }, { "lastTransitionTime": "2022-12-09T20:30:10Z", "message": "Reconcile completed successfully", "observedGeneration": 3, "reason": "ReconcileCompleted", "status": "True", "type": "Upgradeable"1 } ]- 1
- L'opérateur de virtualisation OpenShift a le statut
Upgradeable.
Mettez manuellement à jour votre cluster à partir de la version EUS source vers la version mineure suivante d'OpenShift Container Platform :
$ oc adm upgradeVérification
Vérifiez la version actuelle en exécutant la commande suivante :
$ oc get clusterversionNoteLa mise à jour d'OpenShift Container Platform vers la version suivante est une condition préalable à la mise à jour d'OpenShift Virtualization. Pour plus de détails, reportez-vous à la section " Mise à jour des clusters " de la documentation d'OpenShift Container Platform.
Mettre à jour OpenShift Virtualization.
- Avec la stratégie d'approbation par défaut Automatic, OpenShift Virtualization se met automatiquement à jour vers la version correspondante après la mise à jour d'OpenShift Container Platform.
- Si vous utilisez la stratégie d'approbation Manual, approuvez les mises à jour en attente en utilisant la console web.
Surveillez la mise à jour d'OpenShift Virtualization en exécutant la commande suivante :
$ oc get csv -n openshift-cnv- Mettez à jour OpenShift Virtualization à chaque version de z-stream disponible pour la version mineure non-EUS, en surveillant chaque mise à jour en exécutant la commande montrée dans l'étape précédente.
Confirmez qu'OpenShift Virtualization a bien été mis à jour vers la dernière version z-stream de la version non-EUS en exécutant la commande suivante :
$ oc get hco kubevirt-hyperconverged -n openshift-cnv -o json | jq ".status.versions"Exemple de sortie
[ { "name": "operator", "version": "4.12.2" } ]Attendez que l'opérateur
HyperConvergedait l'étatUpgradeableavant de procéder à la mise à jour suivante. Entrez la commande suivante et surveillez la sortie :$ oc get hco kubevirt-hyperconverged -n openshift-cnv -o json | jq ".status.conditions"- Mettre à jour OpenShift Container Platform à la version EUS cible.
Confirmez que la mise à jour a réussi en vérifiant la version du cluster :
$ oc get clusterversionMettre à jour OpenShift Virtualization vers la version EUS cible.
- Avec la stratégie d'approbation par défaut Automatic, OpenShift Virtualization se met automatiquement à jour vers la version correspondante après la mise à jour d'OpenShift Container Platform.
- Si vous utilisez la stratégie d'approbation Manual, approuvez les mises à jour en attente en utilisant la console web.
Surveillez la mise à jour d'OpenShift Virtualization en exécutant la commande suivante :
$ oc get csv -n openshift-cnvLa mise à jour est terminée lorsque le champ
VERSIONcorrespond à la version EUS cible et que le champPHASEindiqueSucceeded.Rétablissez la configuration des méthodes de mise à jour de la charge de travail que vous avez sauvegardée :
$ oc patch hco kubevirt-hyperconverged -n openshift-cnv --type json -p "[{\"op\":\"add\",\"path\":\"/spec/workloadUpdateStrategy/workloadUpdateMethods\", \"value\":$WORKLOAD_UPDATE_METHODS}]"Exemple de sortie
hyperconverged.hco.kubevirt.io/kubevirt-hyperconverged patchedVérification
Vérifiez l'état de la migration de la VM en exécutant la commande suivante :
$ oc get vmim -A
Prochaines étapes
- Vous pouvez maintenant débloquer les pools de configuration des machines des nœuds de travail.