Son Micro Cloud avec ses Machines Virtuelles dans sa carte Raspberry Pi 4 à l’aide de Multipass et LXD …

Karim
8 min readNov 11, 2020

J’avais précédemment écrit un article sur la virtualisation dans une carte Raspberry Pi 4 avec KVM et Cockpit :

Dans ce nouvel article, je vais utiliser une autre variante via l’utilisation de Multipass et LXD. Je pars d’une carte Raspberry Pi 4 avec 8Gb de mémoire vive :

Pour rappel, Raspberry Pi est un SBC (Single Board Computer) à bas prix créé par une équipe de professeurs de l’Université de Cambridge, afin d’encourager l’apprentissage de la programmation et le lancement de différents projets. Avec un processeur plus puissant et un grand choix en matière de connectivité, le Raspberry Pi 4 consomme beaucoup moins d’énergie.

Dans le souci de rendre le Raspberry Pi 4 modèle B encore plus performant, la fondation Raspberry Pi a misé sur un nouveau SOC Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bits à 1.5GHz, pour remplacer le Cortex A53 quadricoeurs cadencé à 1,4 GHz, utilisé dans la version précédente …

J’utilise Raspberry Pi Imager pour charger une image Ubuntu 20.10 ARM 64 Bits dans cette dernière avec une carte SD à 64 Go :

La carte SD est prête à être inserée :

Cette carte Raspberry Pi 4 démarre avec Ubuntu 20.10 (Groovy Gorilla) :

J’initialise l’hyperviseur LXD (déjà installé) :

Avec la dernière version de Multipass, je peux effectuer une liaison avec l’hyperviseur LXD :

Je vais donc pouvoir lancer avec Multipass des machines virtuelles utilisant LXD en backend …

Lancement de trois machines virtuelles sous Ubuntu 20.04 LTS qui formeront l’ossature d’un futur cluster k3s :

Les machines virtuelles sont actives :

Je peux utiliser la clé SSH privée par défaut avec Multipass pour me connecter à ces machines virtuelles :

Utilisation de k3sup pour la création du cluster k3s dans ces machines virtuelles :

Création donc du noeud maître avec la première machine virtuelle :

Puis ajout des machines virtuelles restantes comme noeud Worker dans ce cluster k3s :

Le cluster k3s est actif et opérationnel :

Déploiement rapide du Démonstrateur FCA en utilisant l’Ingress Controller via Traefik dans ce cluster :

deployment.yml

avec le binaire ARM 64 Bits fourni :

Lancement du tunnel depuis la carte Raspberry Pi 4 :

Le démonstrateur FCA est accessible depuis l’URL fournie :

Pour le rendre accessible sur le réseau local je vais réutiliser Node.js et Reverse-Proxy.js :

Et lancement de ce Reverse Proxy local :

avec le démonstrateur FCA en local :

Je peux aussi ne pas utiliser ici Multipass et exécuter ces machines virtuelles directement avec l’hyperviseur LXD. En effet, la virtualisation par Qemu est possible au travers de LXD depuis les versions récentes (4.X) :

J’utilise pour cela les images Cloud ARM 64 Bits d’Ubuntu en version 20.10 :

Et encore une fois, j’initie au travers de ces trois machines virtuelles un cluster k3s :

Le fichier Kubeconfig est à récupérer sur le noeud maître du cluster :

et avec lui je peux accéder au cluster :

Je redéploie le démonstrateur FCA :

et j’utilise le même Reverse Proxy pour pouvoir y accéder localement :

qui une fois exécuté et terminé me permet de visualiser un dashboard de monitoring …

Le tout m’aura consommé moins de 4 Go de RAM …

Le même procédé peut être appliqué dans le dernier modèle Raspberry Pi 400 avec son processeur Broadcom Cortex A72 à 4 coeurs cadencés à 1,8Ghz mais avec seulement 4 Gb de mémoire vive :

--

--