Chapitre 7. Mise à jour de la virtualisation OpenShift


Découvrez comment Operator Lifecycle Manager (OLM) fournit des mises à jour de flux z et de versions mineures pour OpenShift Virtualization.

Note
  • Le Node Maintenance Operator (NMO) n'est plus livré avec OpenShift Virtualization. Vous pouvez installer le NMO à partir de OperatorHub dans la console web d'OpenShift Container Platform, ou en utilisant la CLI d'OpenShift (oc).

    Vous devez effectuer l'une des tâches suivantes avant de mettre à jour OpenShift Virtualization 4.11 à partir d'OpenShift Virtualization 4.10.2 et des versions ultérieures :

    • Sortir tous les nœuds du mode maintenance.
    • Installez l'ONM autonome et remplacez la ressource personnalisée (CR) nodemaintenances.nodemaintenance.kubevirt.io par une CR nodemaintenances.nodemaintenance.medik8s.io.

7.1. À propos de la mise à jour de la virtualisation OpenShift

  • Operator Lifecycle Manager (OLM) gère le cycle de vie de l'opérateur de virtualisation OpenShift. L'opérateur Marketplace, qui est déployé lors de l'installation d'OpenShift Container Platform, met les opérateurs externes à la disposition de votre cluster.
  • OLM fournit un flux z et des mises à jour de versions mineures pour OpenShift Virtualization. Les mises à jour des versions mineures sont disponibles lorsque vous mettez à jour OpenShift Container Platform vers la version mineure suivante. Vous ne pouvez pas mettre à jour OpenShift Virtualization vers la version mineure suivante sans d'abord mettre à jour OpenShift Container Platform.
  • Les abonnements à OpenShift Virtualization utilisent un canal de mise à jour unique nommé stable. Le canal stable assure la compatibilité des versions d'OpenShift Virtualization et d'OpenShift Container Platform.
  • Si la stratégie d'approbation de votre abonnement est définie sur Automatic, le processus de mise à jour démarre dès qu'une nouvelle version de l'opérateur est disponible dans le canal stable. Il est fortement recommandé d'utiliser la stratégie d'approbation Automatic pour maintenir un environnement supportable. Chaque version mineure d'OpenShift Virtualization n'est prise en charge que si vous exécutez la version correspondante d'OpenShift Container Platform. Par exemple, vous devez exécuter OpenShift Virtualization 4.12 sur OpenShift Container Platform 4.12.

    • Bien qu'il soit possible de sélectionner la stratégie d'approbation Manual, cela n'est pas recommandé car cela risque de compromettre le support et la fonctionnalité de votre cluster. Avec la stratégie d'approbation Manual, vous devez approuver manuellement chaque mise à jour en attente. Si les mises à jour d'OpenShift Container Platform et d'OpenShift Virtualization ne sont pas synchronisées, votre cluster ne sera plus supporté.
  • Le délai d'exécution d'une mise à jour dépend de votre connexion réseau. La plupart des mises à jour automatiques s'effectuent en quinze minutes.
  • La mise à jour d'OpenShift Virtualization n'interrompt pas les connexions réseau.
  • Les volumes de données et les revendications de volumes persistants qui leur sont associées sont préservés lors de la mise à jour.
Important

Si vous avez des machines virtuelles en cours d'exécution qui utilisent le stockage hostpath provisioner, elles ne peuvent pas être migrées en direct et peuvent bloquer une mise à jour du cluster OpenShift Container Platform.

En guise de solution, vous pouvez reconfigurer les machines virtuelles de manière à ce qu'elles puissent être mises hors tension automatiquement lors d'une mise à jour du cluster. Supprimez le champ evictionStrategy: LiveMigrate et définissez le champ runStrategy sur Always.

7.1.1. A propos des mises à jour de la charge de travail

Lorsque vous mettez à jour OpenShift Virtualization, les charges de travail des machines virtuelles, y compris libvirt, virt-launcher, et qemu, se mettent à jour automatiquement si elles prennent en charge la migration en direct.

Note

Chaque machine virtuelle possède un pod virt-launcher qui exécute l'instance de machine virtuelle (VMI). Le pod virt-launcher exécute une instance de libvirt, qui est utilisée pour gérer le processus de la machine virtuelle (VM).

Vous pouvez configurer la manière dont les charges de travail sont mises à jour en modifiant la strophe spec.workloadUpdateStrategy de la ressource personnalisée (CR) HyperConverged. Il existe deux méthodes de mise à jour des charges de travail : LiveMigrate et Evict.

Comme la méthode Evict arrête les pods VMI, seule la stratégie de mise à jour LiveMigrate est activée par défaut.

Lorsque LiveMigrate est la seule stratégie de mise à jour activée :

  • Les IMV qui prennent en charge la migration en direct sont migrées pendant le processus de mise à jour. L'invité de la VM se déplace dans un nouveau pod avec les composants mis à jour activés.
  • Les IMV qui ne prennent pas en charge la migration en direct ne sont pas interrompues ni mises à jour.

    • Si un IMV dispose de la stratégie d'éviction LiveMigrate mais ne prend pas en charge la migration en direct, il n'est pas mis à jour.

Si vous activez à la fois LiveMigrate et Evict:

  • Les IMV qui prennent en charge la migration en direct utilisent la stratégie de mise à jour LiveMigrate.
  • Les IMV qui ne prennent pas en charge la migration en direct utilisent la stratégie de mise à jour Evict. Si une IMV est contrôlée par un objet VirtualMachine dont la valeur runStrategy est always, une nouvelle IMV est créée dans un nouveau module avec des composants mis à jour.
Tentatives de migration et délais d'attente

Lors de la mise à jour des charges de travail, la migration en direct échoue si un pod est dans l'état Pending pendant les périodes suivantes :

5 minutes
Si le pod est en attente parce qu'il est Unschedulable.
15 minutes
Si le pod est bloqué dans l'état d'attente pour une raison quelconque.

Lorsqu'une IMV ne parvient pas à migrer, le site virt-controller essaie de la migrer à nouveau. Il répète ce processus jusqu'à ce que toutes les IMV migrables soient exécutées sur les nouveaux pods virt-launcher. Cependant, si une IMV est mal configurée, ces tentatives peuvent se répéter indéfiniment.

Note

Chaque tentative correspond à un objet de migration. Seules les cinq tentatives les plus récentes sont conservées dans une mémoire tampon. Cela permet d'éviter que les objets de migration ne s'accumulent sur le système tout en conservant des informations pour le débogage.

7.1.2. À propos des mises à jour EUS-to-EUS

Chaque version mineure paire d'OpenShift Container Platform, y compris les versions 4.10 et 4.12, est une version EUS (Extended Update Support). Cependant, comme la conception de Kubernetes impose des mises à jour en série des versions mineures, vous ne pouvez pas passer directement d'une version EUS à la suivante.

Après avoir mis à jour la version EUS source vers la prochaine version mineure impaire, vous devez séquentiellement mettre à jour OpenShift Virtualization vers toutes les versions z-stream de cette version mineure qui se trouvent sur votre chemin de mise à jour. Lorsque vous avez mis à jour vers la dernière version z-stream applicable, vous pouvez alors mettre à jour OpenShift Container Platform vers la version mineure EUS cible.

Lorsque la mise à jour d'OpenShift Container Platform réussit, la mise à jour correspondante pour OpenShift Virtualization devient disponible. Vous pouvez maintenant mettre à jour OpenShift Virtualization vers la version EUS cible.

7.1.2.1. Préparation de la mise à jour

Avant de commencer une mise à jour EUS-to-EUS, vous devez :

  • Mettez en pause les pools de configuration des machines des nœuds de travail avant de lancer une mise à jour EUS vers EUS afin que les travailleurs ne soient pas redémarrés deux fois.
  • Désactivez les mises à jour automatiques de la charge de travail avant de commencer le processus de mise à jour. Cela permet d'éviter qu'OpenShift Virtualization ne migre ou n'expulse vos machines virtuelles (VM) jusqu'à ce que vous mettiez à jour votre version cible d'EUS.
Note

Par défaut, OpenShift Virtualization met automatiquement à jour les workloads, tels que le pod virt-launcher, lorsque vous mettez à jour l'OpenShift Virtualization Operator. Vous pouvez configurer ce comportement dans la strophe spec.workloadUpdateStrategy de la ressource personnalisée HyperConverged.

En savoir plus sur la préparation d'une mise à jour EUS-to-EUS.

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.