Aperçu de Rancher Harvester, une solution open source d’infrastructure hyperconvergente (HCI) basée sur Kubernetes …

Image for post
Image for post

Dans un précédent article, j’avais parlé de la manière d’utiliser KubeVirt avec Hyperconverged Cluster Operator (HCO) pour créer ses machines virtuelles et les visualiser avec la console OKD :

Dans une définition parmis d’autres, l’hyperconvergence est une infrastructure software-defined, qui dissocie les opérations d’infrastructure du matériel système et les fait converger au niveau de l’hyperviseur dans un bloc de construction unique (d’où le terme hyperconvergence). Les systèmes hyperconvergents utilisent l’intelligence software-defined pour décomposer les silos de stockage et de calcul, qui peuvent être ensuite exécutés et gérés sur la même plate-forme de serveur, éliminant ainsi les inefficacités et accélérant les calculs.

Image for post
Image for post

Ici je vais effectuer un rapide aperçu du projet Rancher Harvester (encore en développement) qui reprend KubeVirt pour une création simplifiée de machine virtuelle dans un cluster Kubernetes et dans une logique d’hyperconvergence en mode open source :

On a ici une sorte de successeur de feu “RancherVM” :

Image for post
Image for post

Pour cela je pars d’une instance dans DigitalOcean autorisant la virtualisation imbriquée :

Image for post
Image for post
Image for post
Image for post

Et je peux installer directement k3s :

Image for post
Image for post

Le cluster k3s est actif et opérationnel :

Image for post
Image for post
Image for post
Image for post

J’installe Helm 3 ensuite :

Image for post
Image for post

Je clone le dépôt Git du projet Rancher Harvester et je déploie Rancher Harvester via Helm sur le cluster k3s :

Image for post
Image for post

Je possède ces classes de stockage dans le cluster k3s :

Image for post
Image for post

Rancher Harvester peut être installé sur un cluster Kubernetes de la manière suivante :

- via Helm.

- ou par le catalogue d’application de Rancher. Vous pouvez ajouter ce repo au catalogue en tant qu’application Helm v3.

On peut voir une fois le déploiement terminé les composants de KubeVirt déployé dans le cluster k3s …

Pour rappel, KubeVirt est un projet open source qui permet aux machines virtuelles d’être déployées, consommées et gérées par Kubernetes comme des containers. Le fait de disposer d’un plan de déploiement et de gestion unique pour les containers et les machines virtuelles permet d’obtenir une plate-forme unifiée pour les applications natives du cloud, quelles que soient les exigences.

Image for post
Image for post

Je peux alors me connecter au dashboard de Rancher Harvester avec le fichier Kubeconfig :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Je peux y visualiser les caractéristiques du noeud unique que j’utilise ici pour le cluster :

Image for post
Image for post
Image for post
Image for post

Je vais charger une image d’Ubuntu 20.10 via le dépôt Ubuntu Cloud Images sur le web :

Image for post
Image for post

Cette image sera chargée sur le cluster MinIO crée au moment du déploiement de Rancher Harvester sur le cluster k3s :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

L’image Ubuntu est chargée :

Image for post
Image for post
Image for post
Image for post

Je peux charger ma clé SSH publique pour me connecter aux futures machines virtuelles :

Image for post
Image for post

Je lance une première machine virtuelle via le dashboard :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Un terminal en mode web permet d’accéder à la console de la machine virtuelle :

Image for post
Image for post

Je me connecte via SSH à cette machine virtuelle :

Image for post
Image for post
Image for post
Image for post

en suivant ce process :

Image for post
Image for post
Image for post
Image for post

k0s est une distribution Kubernetes tout compris, avec tous les éléments nécessaires préconfigurés pour faire de la construction d’un cluster Kubernetes une simple question de copie d’un exécutable sur chaque hôte et de son exécution.

Je récupère le fichier Kubeconfig et je peux interagir avec ce cluster Kubernetes :

Image for post
Image for post

En créant un token pour pouvoir joindre des noeuds Worker :

Image for post
Image for post

Création de deux autres machines virtuelles avec le dashboard de Rancher Harvester :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Jonction de ces nouveaux noeuds en tant que Workers dans le cluster Kubernetes avec k0s :

Image for post
Image for post

Le cluster Kubernetes imbriqué dans le cluster k3s avec ces machines virtuelles est actif :

Image for post
Image for post

Lancement comme les fois précédentes du sempiternel démonstrateur FC dans le cluster avec Reverse-Proxy.js :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Avec une instance à 8 Go de mémoire vive et tous ces composants en exécution, je suis à la limite :

Image for post
Image for post

Au même titre que KubeVirt, le projet Rancher Harvester est prometteur même s’il n’est pas encore finalisé. Un moyen simple de lancer et gérer ses machines virtuelles en mode Cloud Native. Surtout que l’utilisateur pourra installer et former un cluster avec Rancher Harvester en utilisant une image ISO directement sur les nœuds bare metal. Ainsi que l’éventuelle jonction avec la solution Longhorn (couvrant le stockage persistant des applications conteneurisées et hébergée par la CNCF) pour la gestion des volumes liés aux machines virtuelles dans Kubernetes …

Image for post
Image for post

À suivre !

Above the clouds, the sky is always blue ...

Get the Medium app