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 !

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay