En 2023, Broadcom a acquis VMware et a immédiatement annoncé la fin des licences perpétuelles, la suppression de la version gratuite d’ESXi et le passage à un modèle d’abonnement. Cette décision a provoqué une hausse des coûts de 100 à 300 % pour de nombreuses entreprises à travers le monde, les incitant à rechercher de nouvelles alternatives.

Côté Davidson nous avons choisi de lancer un pilote avec la solution KVM, une solution de virtualisation open-source, pour notre plateforme de conteneurisation OKD (Openshift).

Choisir une plateforme open-source offre de nombreux avantages, notamment l’absence de frais de licence, l’autonomie par rapport aux fournisseurs propriétaires et la liberté d’utilisation

Qu’est-ce qu’OKD ?

Dans l’univers de la conteneurisation, OKD (OpenShift) est une plateforme d’orchestration de conteneurs conçue pour accélérer le développement, le déploiement et la mise à l’échelle des applications. Elle permet aux développeurs et aux équipes opérationnelles de gérer efficacement le cycle de vie des applications sur le long terme.

OKD et OpenShift : quelle est la différence ?

Selon la documentation de Red Hat, OKD est à la base d’OpenShift. Initialement connu sous le nom d’OpenShift Origin, OKD est maintenant reconnu comme “un projet communautaire comprenant des composants logiciels qui fonctionnent au-dessus de Kubernetes”. En d’autres termes, OKD est la version communautaire d’OpenShift.

OKD au sein de la DSI de Davidson

L’équipe YODA gère une cinquantaine d’applications internes pour Davidson. La majorité de ces applications sont hébergées sur la plateforme OKD. Elle est utilisée pour simplifier le développement, le déploiement et la gestion de ces applications basées sur des conteneurs.

Objectif du POC

Actuellement, chez YODA, nous utilisons OKD en conjonction avec VMware vSphere, une solution de virtualisation, pour déployer, exécuter et gérer le cycle de vie de nos applications. VMware est l’un des leaders en matière de virtualisation, offrant l’hyperviseur ESXi et la plateforme vSphere. Cependant, ces solutions requièrent des licences payantes. L’objectif de notre Proof of Concept (POC) est de trouver et d’évaluer une alternative de virtualisation optimisée pour OKD. Cette alternative doit offrir un coût total de possession réduit tout en étant aussi puissante, performante, simple, stable et sécurisée que VMware.

Comparaison entre KVM et VMware pour la virtualisation

  • Architecture

KVM fonctionne comme un module du noyau Linux, ce qui signifie qu’il est étroitement intégré au système d’exploitation hôte. Les machines virtuelles KVM sont gérées comme des processus Linux normaux, ce qui permet une compatibilité avec tous les outils Linux standard et une gestion facile via les commandes du système.

En revanche, VMware ESXi est un hyperviseur de type 1 qui fonctionne directement sur le matériel, sans intermédiaire. Cela minimise la charge du système hôte et offre une isolation forte entre les machines virtuelles, réduisant ainsi les risques de conflits.

  • Performance

KVM bénéficie d’une excellente performance grâce à sa proximité avec le noyau Linux et à l’utilisation efficace des extensions de virtualisation matérielle. Cependant, la nécessité d’un système d’exploitation hôte peut introduire une légère surcharge.

VMware, avec ESXi, offre généralement des performances supérieures, car il fonctionne directement sur le matériel. Cette architecture minimise la latence et maximise l’efficacité, ce qui est crucial pour les environnements nécessitant une performance de pointe.

  • Gestion et administration

KVM utilise des outils comme libvirt, virt-manager et d’autres interfaces CLI pour la gestion des machines virtuelles. Ces outils, bien que puissants, peuvent nécessiter une courbe d’apprentissage et être moins conviviaux que les interfaces graphiques modernes.

VMware offre des solutions de gestion sophistiquées et bien conçues, comme vCenter, qui facilitent la gestion centralisée des environnements de virtualisation à grande échelle. Ces outils offrent des fonctionnalités avancées pour l’automatisation, la surveillance et l’orchestration.

  • Scalabilité et résilience

KVM peut évoluer efficacement pour répondre aux besoins croissants grâce à des fonctionnalités telles que la migration en direct des VMs. Cependant, la configuration avancée pour des environnements de très grande taille peut nécessiter des efforts supplémentaires.

VMware est réputé pour sa capacité à évoluer facilement et à gérer des environnements complexes. Les fonctionnalités telles que la haute disponibilité (HA), la tolérance aux pannes et le clustering sont intégrées, ce qui en fait un choix idéal pour les scénarios critiques où la résilience est essentielle.

  • Sécurité

KVM bénéficie de la sécurité inhérente au système Linux, avec des fonctionnalités comme SELinux et AppArmor qui ajoutent des couches de protection supplémentaires. Cependant, la sécurité dépend en grande partie de la configuration et de la gestion de l’environnement hôte.

VMware propose des solutions de sécurité robustes et intégrées, comme VMware NSX pour la virtualisation de la sécurité réseau. Les environnements VMware sont souvent certifiés pour répondre à des standards de sécurité élevés, ce qui est un atout pour les entreprises nécessitant une sécurité renforcée.

  • Coût

KVM, étant open-source, est généralement moins coûteux que les solutions commerciales. Il n’y a pas de frais de licence pour l’utilisation de KVM, ce qui en fait une option attrayante pour les organisations à budget limité. Les coûts associés concernent principalement le support et la gestion.

VMware, bien que plus coûteux, offre une gamme de fonctionnalités et de services qui justifient souvent l’investissement. Les coûts comprennent les licences pour l’hyperviseur ESXi, vCenter pour la gestion centralisée et d’autres modules complémentaires. Pour les grandes entreprises, ces coûts peuvent être compensés par les avantages en termes de performance, de gestion et de résilience.

  • Écosystème et support

KVM, en tant que solution open-source, dispose d’un vaste écosystème et d’une communauté dynamique. Plusieurs distributions Linux l’intègrent, de nombreuses ressources ainsi que des forums sont disponibles pour l’assistance. Toutefois, pour bénéficier d’un support commercial, il peut être nécessaire d’acheter des services tiers.

VMware offre un écosystème mature avec une large gamme de produits complémentaires et de partenaires. Le support commercial de VMware est réputé pour sa qualité avec des options de support étendues disponibles pour les entreprises. L’écosystème VMware est également bien intégré avec des solutions de partenaires pour des fonctionnalités étendues.

Alors pourquoi choisir KVM ?

KVM (Kernel-based Virtual Machine) est une technologie de virtualisation open source qui convertit le noyau Linux en un hyperviseur performant. Elle permet de virtualiser efficacement les charges de travail d’entreprise et offre toutes les fonctionnalités nécessaires pour gérer aussi bien les infrastructures physiques que virtuelles, le tout à un coût d’exploitation réduit.

Les points forts de la solution KVM :

  • Coût :
    • Économique : en tant que technologie open source, KVM n’entraîne aucun frais de licence supplémentaire. Cela réduit considérablement le coût total de possession (TCO) par rapport aux solutions de virtualisation propriétaires.
  • Open Source :
    • Innovation et Flexibilité : l’accès au code source de KVM permet aux développeurs d’innover et d’adapter la solution à leurs besoins spécifiques. Cela favorise une grande flexibilité dans la gestion et l’évolution des environnements virtuels.
    • Indépendance : en utilisant KVM, les entreprises évitent la dépendance à un fournisseur unique, ce qui offre une liberté dans le choix et la gestion de leur infrastructure.
  • Performance :
    • Performance Élevée : KVM offre des performances proches du matériel natif, sans la surcharge d’une couche d’hyperviseur. Cela signifie que les applications s’exécutent plus rapidement et plus efficacement par rapport à d’autres hyperviseurs.
    • Interopérabilité : KVM assure une excellente compatibilité entre les plateformes Linux et Windows, permettant une gestion fluide des systèmes hétérogènes.
  • Compatibilité et intégration :
    • Intégration au Noyau Linux : grâce à son intégration directe dans le noyau Linux, KVM est largement adopté dans les environnements basés sur ce système. Il profite des atouts de Linux, notamment en matière de sécurité, gestion de la mémoire, ordonnancement des processus, pilotes de périphériques et réseau.
    • Intégration avec OKD : sa compatibilité avec les distributions de Red Hat et son intégration étroite avec des solutions basées sur Kubernetes, telles qu’OKD, en font une option attrayante pour les déploiements de conteneurs.
  • Simplicité d’utilisation :
    • Gestion Centralisée : KVM permet de créer, démarrer, arrêter, mettre en pause, migrer et modéliser des centaines de machines virtuelles de manière simple et efficace. Que ce soit sur des logiciels ou du matériel divers, KVM offre une gestion centralisée et simplifiée des environnements virtuels.

Mise en place d’un cluster OKD avec KVM : les prérequis

Pour installer KVM, un serveur hôte avec Fedora Core OS est nécessaire. Ce système d’exploitation fournit la base sur laquelle KVM sera installé et configuré.

On pourrait se demander pourquoi un système d’exploitation est nécessaire alors que KVM est décrit comme un hyperviseur de type 1, censé fonctionner directement sur le matériel. En fait, KVM est un module intégré au noyau Linux, qui active la virtualisation. Le système d’exploitation, comme Fedora Core OS dans ce cas, sert de support pour ce module. Une fois KVM activé, il utilise directement le matériel comme le ferait un hyperviseur traditionnel.

En résumé :

  • Machine hôte : la machine hôte fonctionne sous une distribution Linux, offrant l’environnement nécessaire pour l’installation et l’utilisation de KVM.
  • Hyperviseur KVM : une fois activé dans le système d’exploitation, KVM se connecte directement au matériel et permet la gestion des machines virtuelles.

Gérer une infrastructure par l’interface en ligne de commande (CLI) peut s’avérer complexe et laborieux, car cela nécessite l’exécution manuelle de nombreuses commandes avec divers arguments. Pour ceux qui ne sont pas à l’aise avec la CLI ou qui préfèrent une approche plus intuitive, une interface graphique (GUI) est souvent plus adaptée.

Dans notre cas, nous avons choisi d’utiliser Cockpit, un outil gratuit et open-source qui propose une interface web interactive. Cockpit permet aux administrateurs système de surveiller, gérer et dépanner facilement les serveurs Linux, offrant ainsi une expérience utilisateur conviviale.

Pour tester la compatibilité entre OKD et KVM, il est important de définir les services à installer, ainsi que leurs exigences en termes de ressources (calcul, mémoire, stockage) et leurs spécifications réseau.

Procédure d’installation d’OKD sur KVM

1. Préparer l’hôte KVM

Avant de débuter, il est nécessaire de préparer l’hôte en installant et en activant les paquets requis pour la virtualisation. Voici les composants essentiels

  • qemu-kvm : un émulateur open source et un package de virtualisation fournissant une émulation matérielle complète.
  • libvirt : un package qui contient les fichiers de configuration nécessaires pour exécuter le démon libvirt, facilitant ainsi la gestion des machines virtuelles.
  • virtinst : un ensemble d’utilitaires en ligne de commande pour la création et la modification des machines virtuelles.
  • virt-install : un outil de ligne de commande pour créer des machines virtuelles directement depuis la CLI.
  • bridge-utils : un ensemble d’outils pour créer et gérer des périphériques de type “bridge”, nécessaires pour la configuration réseau des VM.

2. Préparation de l’infrastructure pour OKD 4

Une fois l’hôte KVM prêt, les étapes suivantes préparent l’infrastructure nécessaire pour déployer OKD :

  • Création des enregistrements DNS : configurer les enregistrements DNS pour l’API d’OKD, le nœud de bootstrap, ainsi que les nœuds master et worker.
  • Téléchargement des images ISO : obtenir les images ISO pour le Bare Metal (Fedora CoreOS 38 et Ubuntu 22.04) afin de créer les VM via l’interface Cockpit.
  • Réservation DHCP : réserver les adresses IP via DHCP pour les nœuds OKD.
  • Téléchargement de l’installeur OKD et du client oc : télécharger openshift-install, l’outil d’installation d’OKD, ainsi que le client oc pour interagir avec le cluster.

3. Configuration de l’installation

La configuration d’OKD commence par la préparation des fichiers nécessaires pour l’installation du cluster :

Fichier install-config.yaml : Ce fichier définit les paramètres de l’installation, tels que le nom du cluster, la plateforme d’installation (bare-metal dans notre cas), le nombre de nœuds master et worker, les plages d’adresses IP, et la clé publique SSH pour tous les nœuds.

  • Création des manifestes et des fichiers Ignition :
    • Le fichier install-config.yaml est transformé en manifestes Kubernetes (K8s) grâce à openshift-install.
    • Ces manifestes sont ensuite encapsulés dans des fichiers Ignition, utilisés pour le premier démarrage et la configuration automatique des nœuds du cluster.

4. Spécifications des fichiers Ignition

Lors de la création des fichiers Ignition, assurez-vous de spécifier correctement :

  • Le nom du Disque SCSI : identifier le disque à utiliser pour le système.
  • Le nom de l’Interface Réseau : nommer l’interface réseau pour la connectivité.

Il est important de noter que les certificats générés pour le bootstrap expirent après 24 heures, ce qui impose de finaliser l’installation du cluster dans ce délai.

5. Démarrage des nœuds et finalisation de l’installation

  • Démarrer les nœuds : lancer les nœuds de bootstrap, master et worker en utilisant les fichiers Ignition créés.
  • Suivre l’installation : surveiller l’avancement de l’installation du cluster OKD4. La phase de bootstrapping dure environ 30 à 40 minutes.
  • Validation des nœuds : une fois le bootstrapping terminé, s’assurer que les nœuds worker et de stockage sont opérationnels.
  • Approbation des CSR : approuver les demandes de signature de certificat (CSR) pour les nœuds worker et de stockage afin de finaliser l’installation du cluster.

Et voilà ! Vous avez maintenant installé OKD sur KVM. Cette configuration vous permet de bénéficier d’une solution puissante et flexible pour la gestion de vos applications conteneurisées.

Tests et validation

Pour valider la preuve de concept (POC) de l’installation d’OKD sur KVM, nous avons établi plusieurs critères de validation. Ceux-ci garantissent que le cluster est stable, performant et répond aux exigences de production. Voici un aperçu de ces critères ainsi que leur statut actuel :

Comparaison entre OKD sur VMWare et OKD sur KVM

Lors de notre expérience avec OKD sur VMWare et sur KVM, nous avons remarqué les points suivants :

Installation et configuration du cluster OKD

  1. Installation et configuration initiales :
  • L’installation du cluster OKD et la configuration après l’installation n’ont montré aucune différence significative entre VMWare et KVM. Les processus étaient similaires et les étapes nécessaires étaient les mêmes.
  1. Problématique de l’interface réseau :
  • Pendant la préparation du cluster, nous avons rencontré un défi spécifique concernant la détermination de l’interface réseau pour chaque VM sur KVM. Contrairement à VMWare où l’interface réseau est standardisée (ens192), sur KVM, chaque VM avait une configuration d’interface réseau différente. Nous avons dû démarrer les VMs pour identifier précisément leurs interfaces réseau et ajuster les fichiers Ignition en conséquence pour le premier démarrage.

Performance

  1. Exécution de builds :
  • Pour évaluer la performance, nous avons exécuté plusieurs builds sur nos clusters de test OKD sur KVM et VMWare. Nous avons constaté que les builds sur le cluster VMWare étaient généralement plus rapides que sur KVM. En moyenne, la différence de temps pour la complétion du build était d’environ 3 minutes plus rapide sur VMWare par rapport à KVM.

Cette comparaison met en évidence que bien que l’installation et la configuration initiales soient similaires entre VMWare et KVM pour OKD, il peut y avoir des différences dans des aspects spécifiques comme la configuration réseau et la performance lors d’applications intensives telles que les builds. Ces observations peuvent influencer le choix de la plateforme selon les besoins en termes de performance et de gestion des ressources.

Avant de tirer des conclusions sur la performance, il est nécessaire de réaliser un nombre suffisant de tests tout en tenant compte de la disponibilité des ressources et de la charge sur les nœuds workers.

Conclusion

Notre expérience avec le cluster de test OKD sur KVM a révélé un comportement très similaire à celui observé sur VMWare. Toutefois, le choix entre OKD sur VMWare et OKD sur KVM pour un déploiement en production dépendra des besoins particuliers de votre organisation, de votre infrastructure actuelle et de l’expertise disponible.

Il est important de noter que la configuration et la gestion de KVM peuvent être plus complexes que VMWare, demandant ainsi plus de compétences et de temps pour une maîtrise complète.

Suite à l’acquisition de VMware par Broadcom, une enquête communautaire récente impliquant plus de 700 répondants a montré que 58,8 % d’entre eux considéraient les hyperviseurs basés sur KVM comme leur premier choix. Cette tendance est renforcée par le support croissant des principaux fournisseurs de cloud public tels qu’Azure, GCP et AWS, qui proposent désormais des solutions de migration pour les charges de travail VMware vers leurs environnements cloud respectifs.

On peut citer, l’état de l’Alaska qui a migré avec succès des charges de travail VMware legacy vers Azure VMware Solution (AVS) en moins de trois mois. AWS offre également VMware Cloud on AWS, tandis que GCP propose Google Cloud VMware Engine (GCVE) avec des tarifs VMware négociés jusqu’en 2027.

Red Hat, en soutenant KVM comme l’hyperviseur principal pour l’ensemble de sa gamme de produits de virtualisation, continue d’améliorer activement le code du noyau et de contribuer à la communauté KVM. Openshift, basé sur Red Hat Enterprise Linux (RHEL) utilise également KVM comme infrastructure sous-jacente.

Concernant la sauvegarde avec Veeam, bien que Veeam ne supporte pas directement KVM pour le moment, il est compatible avec Red Hat Virtualization (RHV) basé sur KVM. Après l’acquisition de VMware par Broadcom, Veeam a également commencé à tester sa solution de sauvegarde sur Proxmox, une autre plateforme de virtualisation open source basée sur KVM.

En résumé, il est essentiel de repenser nos stratégies de virtualisation pour optimiser l’efficacité opérationnelle, encourager l’innovation et assurer une gestion financière prudente à l’ère de l’évolution rapide des technologies de virtualisation.