Présentation
Le projet Open Source KubeVirt permet d'exécuter, de déployer et de gérer des machines virtuelles en utilisant Kubernetes comme plateforme d'orchestration sous-jacente. L'exécution de machines virtuelles dans des conteneurs correspond au processus de virtualisation native pour les conteneurs. La technologie KubeVirt rend ce processus possible en permettant la mise en paquet des machines virtuelles dans des conteneurs et la gestion de ces charges de travail à partir d'une seule console.
Avec KubeVirt, les machines virtuelles se comportent de la même façon que dans un environnement virtuel traditionnel, mais elles peuvent s'exécuter sur une plateforme commune aux microservices conteneurisés et aux applications cloud-native. Toutes les charges de travail de l'environnement, y compris les machines virtuelles, bénéficient de la même infrastructure Kubernetes, ainsi que d'outils et de processus de gestion identiques.
Parrainé par la CNCF (Cloud Native Computing Foundation), le projet KubeVirt constitue la base Open Source de Red Hat® OpenShift® Virtualization, une fonction de Red Hat OpenShift qui prend en charge la migration et la gestion des machines virtuelles traditionnelles sur une plateforme d'applications de cloud hybride fiable.
Fonctionnement de KubeVirt
La technologie KubeVirt complète l'interface de programmation d'application (API) Kubernetes avec des fonctionnalités supplémentaires pour qu'elle puisse interagir avec les machines virtuelles, comme le font d'autres ressources et outils Kubernetes. Les conteneurs et les machines virtuelles peuvent ainsi partager un cluster, des nœuds et des réseaux.
Les fonctionnalités de KubeVirt reposent sur trois principaux composants :
- Définitions de ressources personnalisées (CRD) : une ressource personnalisée est un objet qui permet d'enrichir l'API Kubernetes ou d'ajouter une autre API à un projet ou un cluster. Le type d'objet est défini dans le fichier de définition de la ressource personnalisée, ainsi que le serveur d'API chargé de la gestion de l'ensemble du cycle de vie. KubeVirt ajoute une définition de ressource personnalisée à l'API Kubernetes, lui permettant de gérer les machines virtuelles comme des objets Kubernetes (tels que des pods).
- Contrôleurs : un contrôleur est un ensemble de déploiements qui s'exécutent sur le cluster et qui fournissent un point de terminaison d'API pour gérer les nouvelles définitions de ressources personnalisées de KubeVirt.
- Agents : exécutés sur les nœuds de calcul d'un cluster, les agents gèrent les tâches de nœud liées à la virtualisation.
On peut également considérer KubeVirt comme un pod renfermant une machine virtuelle basée sur la technologie KVM. Dans Kubernetes, un pod est un groupe de conteneurs qui s'exécutent ensemble et partagent les mêmes ressources. La technologie Open Source KVM (Kernel-based Virtual Machine) complète le noyau Linux® avec des fonctions d'hyperviseur. Avec KubeVirt, les instances de machines virtuelles s'exécutent comme des pods. Cette technologie peut ainsi gérer l'état des machines virtuelles (à l'arrêt, en pause ou en cours d'exécution) et effectuer des opérations telles que leur provisionnement, leur ordonnancement et leur migration.
Ressources Red Hat
Cas d'utilisation de KubeVirt
Création de machines virtuelles
Dans l'interface en ligne de commande virtctl, il est possible de créer des machines virtuelles dans un environnement Kubernetes à l'aide de la sous-commande « create vm ». Il est aussi possible de contrôler les types d'instances et les préférences afin de gérer les configurations sur plusieurs machines virtuelles à la fois, notamment pour définir les profils de performances et personnaliser les paramètres d'exécution.
Gestion de machines virtuelles
L'interface en ligne de commande virtctl s'associe à l'outil en ligne de commande standard de Kubernetes, kubectl, pour permettre la gestion de machines virtuelles dans un cluster Kubernetes en s'appuyant sur la virtualisation. L'outil virtctl permet d'effectuer les opérations suivantes :
- Arrêter, démarrer, redémarrer et mettre en pause des machines virtuelles
- Gérer des images de disques
- Accéder aux consoles série, graphique et SSH de la machine virtuelle
- Migrer des machines virtuelles entre des nœuds
Avec les fonctions d'orchestration et d'ordonnancement de Kubernetes, la gestion est répartie entre plusieurs couches, ce qui assure le bon fonctionnement des machines virtuelles. KubeVirt peut aussi faciliter la gestion et la surveillance des conteneurs et des machines virtuelles à partir d'un seul plan de contrôle, lorsque des charges de travail de conteneurs sont exécutées en parallèle.
Migration de machines virtuelles
KubeVirt prend en charge plusieurs méthodes de migration des machines virtuelles, notamment la migration dynamique. Ce processus consiste à déplacer une machine virtuelle et à transférer ses ressources de stockage depuis l'hôte source vers un hôte de destination, sans la déconnecter. Cette option est idéale pour les machines virtuelles qui nécessitent une disponibilité permanente, car leur exploitation n'est pas perturbée lors de leur migration entre des nœuds ou des plateformes.
Test de fonctions et mise à l'échelle des systèmes
Kubernetes offre des fonctionnalités supplémentaires pour l'exécution de machines virtuelles, parmi lesquelles l'opérateur CDI (Containerized Data Importer), qui permet de stocker les machines virtuelles KubeVirt dans un espace disque et peut gérer les ressources de stockage.
Kubernetes permet aussi de mettre à l'échelle les systèmes automatiquement en fonction de l'utilisation du processeur, suite à l'ajout de nouvelles fonctions et de la modernisation des applications.
Avantages de KubeVirt
Intégration cloud-native
Avec KubeVirt, il est possible d'exécuter des charges de travail difficiles à conteneuriser en parallèle d'applications et microservices cloud-native. Les composants des applications virtualisées s'intègrent à une plateforme de développement unifiée qui permet de créer, gérer, déployer et mettre à l'échelle les applications, que les composants soient tous ou en partie conteneurisés ou virtualisés.
Avec KubeVirt, les machines virtuelles peuvent également bénéficier de diverses fonctions natives pour Kubernetes, telles que le contrôle d'accès basé sur les rôles, la surveillance et la journalisation intégrées ou le Service Mesh.
Modernisation
La virtualisation rend possible le démarrage ou l'arrêt rapide de différents environnements de système d'exploitation sur un même équipement matériel. Cette approche apporte de nombreux avantages à l'écosystème informatique, qui gagne notamment en flexibilité, en rapidité et en stabilité. Toutefois, l'évolution des plateformes de virtualisation et l'augmentation de leur coût peuvent inciter les entreprises à chercher de nouvelles solutions. La technologie KubeVirt s'avère particulièrement intéressante, car en plus de remplacer les hyperviseurs, elle fournit une plateforme pour mener à bien la modernisation.
KubeVirt permet de créer et d'exécuter des conteneurs et des machines virtuelles en parallèle, ainsi que d'utiliser une plateforme unifiée pour développer de nouvelles applications et moderniser les charges de travail. La modernisation permet d'adopter les ressources et technologies nécessaires pour suivre les progrès en matière de développement d'applications cloud-native, d'intelligence artificielle et d'apprentissage automatique.
Fonctions avancées et équivalence
KubeVirt fait partie des projets de niveau Incubating de la CNCF, ce qui signifie non seulement qu'il offre des fonctions et des fonctionnalités natives pour Kubernetes, mais aussi qu'il est sans cesse amélioré et enrichi par la communauté Open Source.
KubeVirt inclut des fonctions équivalentes à celles des autres plateformes de virtualisation d'entreprise, notamment VMware vSphere et HyperV, et offre donc la possibilité d'effectuer les mêmes tâches que dans un environnement de virtualisation traditionnel.
Performances
KubeVirt peut s'adapter aux changements des exigences du processeur ou d'allocation de la mémoire. C'est pourquoi la latence est plus faible qu'avec des solutions de virtualisation traditionnelles. KubeVirt rationalise également la couche d'abstraction entre le matériel bare metal et les environnements d'exécution, ce qui optimise l'utilisation des ressources et améliore les performances.
Au sein de la communauté KubeVirt, le groupe d'intérêt spécial autour de la mise à l'échelle (SIG-scale) a mis au point des techniques de surveillance de la mise à l'échelle de KubeVirt dans les environnements de datacenter, afin d'évaluer les performances et l'évolutivité du projet entre les versions. Désormais, ces données de performances et d'évolutivité sont publiées à chaque nouvelle version de KubeVirt.
Sécurité intégrée
KubeVirt s'appuie sur la sécurité native pour Kubernetes, qui garantit l'application cohérente des politiques dans tous les environnements, y compris les machines virtuelles. Au lieu de configurer des contrôles au niveau du système pour chaque hôte d'un cluster, les utilisateurs peuvent définir une même configuration (telle qu'une politique réseau) pour tous les pods d'un déploiement. Cette fonctionnalité facilite la gestion cohérente de la sécurité des machines virtuelles à grande échelle.
En liant les politiques aux systèmes CI/CD et au contrôleur d'admission de Kubernetes, les entreprises peuvent plus facilement appliquer des politiques de contrôle au début du cycle de développement logiciel, ce qui limite l'exposition au moment de l'exécution.
KubeVirt et Red Hat
Basée sur les technologies KubeVirt et KVM, la plateforme d'applications moderne Red Hat OpenShift Virtualization peut exécuter des machines virtuelles et des conteneurs en parallèle. La boîte à outils de migration pour la virtualisation incluse permet de migrer rapidement et facilement des machines virtuelles depuis une plateforme de virtualisation traditionnelle. La solution Red Hat Ansible® Automation Platform accélère la distribution, de la migration à grande échelle aux opérations de maintenance et de correction. La solution Red Hat Advanced Cluster Management for Kubernetes permet de surveiller la sécurité et les performances des machines virtuelles à partir d'une seule console. Il existe d'autres options de prise en charge et intégrations de partenaires pour le stockage, la sauvegarde et la récupération après sinistre, ainsi que la mise en réseau. Toutes ces solutions doivent permettre à nos clients d'assurer le bon fonctionnement de leur infrastructure virtuelle dans le cloud hybride, et de moderniser leur environnement à leur rythme.
Le blog officiel de Red Hat
Découvrez les dernières informations concernant notre écosystème de clients, partenaires et communautés.