DEV Community

Karim
Karim

Posted on • Originally published at Medium on

Déploiement d’un cluster Mirantis k0s dans des MicroVMs au sein d’une carte Raspberry Pi 4 avec Ignite et Firecracker …

Dans des articles précédents, j’avais pu illustrer dans des articles précédents Weave Ignite dans différentes configurations :

Pour rappel, Weave Ignite est un gestionnaire de machine virtuelle (VM) open source (basé sur le projet open source Firecracker d’AWS) avec un “User Experience” de conteneurs et une gestion GitOps intégrée …

weaveworks/ignite

Weave Ignite est transposable sur les architectures de type ARM 64 Bits et j’en profite donc pour tester son installation sur une carte Raspberry Pi 4 avec 8 Gb de RAM :

Via Raspberry Pi Imager, je récupère une image Ubuntu 20.10 pour cette dernière …

Introducing Raspberry Pi Imager, our new imaging utility - Raspberry Pi

Je n’ai pu qu’à la charger dans la carte :

Suivant le modus operandi proposé par Weaveworks, je commence l’installation de CNI et Containerd …

weaveworks/ignite

via ce fichier d’installation, j’installe Ignite et le moteur Ignited :

Ignite est alors opérationnel …

J’importe une image Ubuntu 20.04 LTS pour Ignite car c’est la seule à être multi-architecture :

J’initialise ma première MicroVM avec Ignite :

Je peux alors m’y connecter via SSH :

Il est possible de créer une autre MicroVM via un mode interactif …

J’en crée une dernière et le tout formera l’ossature d’un futur cluster Kubernetes …

Sur la première MicroVM, j’en profite pour installer le client Kubectl et Helm v3 :

Il est alors temps d’initialiser un cluster Kubernetes avec Mirantis k0s que l’on a vu précedemment … k0s est présenté sous la forme d’un binaire unique auto-extractible qui intègre les binaires de Kubernetes :

Récupération du binaire k0s sur GitHub et initialisation du noeud maître du cluster sur la première MicroVM Ubuntu avec Ignite :

Releases · k0sproject/k0s

Récupération du fichier Kubeconfig et interaction avec ce cluster via le client Kubectl :

Je crée un token avec k0s qui va me servir à raccorder un noeud Worker avec la seconde MicroVM Ubuntu :

Récupération encore une fois du binaire k0s et lancement du noeud Worker :

Le premier noeud Worker du cluster est actif …

Je fais exactement la même chose pour la dernière MicroVM Ubuntu en ayant préalablement récupérer un autre token à partir du noeud maître :

Le cluster Mirantis k0s est actif et opérationnel avec ces trois MicroVMs Ubuntu comme noeuds :

J’installe MetalLB afin de bénéficier d’un service de LoadBalancer dans le cluster Kubernetes …

MetalLB, bare metal load-balancer for Kubernetes

à partir des manifests YAML …

Sur la base du plan d’adressage IPv4 présent pour les MicroVMs Ubuntu, je crée ce fichier de configuration YAML pour MetalLB qui va se servir de ce segment d’adresses pour le service de LoadBalancer dans le cluster :

J’installe Traefik en tant qu’Ingress Controller pour ce cluster via Helm v3 et les Charts correspondants …

From Zero to Hero: Getting Started with k0s and Traefik

L’ingress Controller utilise alors une adresse IPv4 fournie par MetalLB :

Le dashboard de Traefik peut être exposé via l’Ingress Controller :

Mais je l’expose directement via le client Kubectl :

Déploiement du demonstrateur FC dans sa version ARM 64 Bits :

Et exposition de ce dernier via Argo Tunnel de Cloudflare …

Argo Tunnel | Logiciel de tunnellisation sécurisée | Cloudflare

Le démonstrateur FC est accessible publiquement …

On peut le visualiser dans le dashboard de Traefik :

Je peux explorer la structure du cluster via Mirantis Lens, une sorte d’IDE pour Kubernetes …

Je récupère le fichier Kubeconfig correspondant à ce cluster et localement sur ma station, j’installe Mirantis Lens via un binaire de GitHub en prenant le soin de rediriger localement le port TCP 6443 via SSH :

Releases · lensapp/lens

Lens se lance comme un outil graphique …

permettant d’explorer ce cluster …

avec un monitoring de base …

Le lancement de ces trois MicroVMs avec Weave Ignite et ce cluster k0s dans la carte Raspberry Pi 4 aura occupé une grande part de la mémoire vive …

A u travers de ces articles, on a vu différentes manières d’utiliser la virtualisation en mode open source dans une carte Raspberry Pi 4. Avec k0s, Mirantis offre un concurrent possible à Rancher k3s avec ce segment de l’Edge Computing en pleine expansion …

Même si Mirantis a annoncé récemment vouloir également transposer sa distribution OpenStack dans Kubernetes …

Announcing Mirantis OpenStack for Kubernetes | Mirantis

et y féderer ses différents outils …

À suivre !

Top comments (0)