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

Karim
9 min readDec 29, 2020

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 …

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 …

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 …

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 :

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 …

à 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 :

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 :

Le démonstrateur FC est accessible publiquement …

On peut le visualiser dans le dashboard de Traefik :

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 …

et y féderer ses différents outils …

À suivre !

--

--