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

Image for post
Image for post

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 :

Image for post
Image for post

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.

Image for post
Image for post

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 :

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

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

Image for post
Image for post

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

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

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

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

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

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

Les machines virtuelles sont actives :

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

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

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
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

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

Image for post
Image for post
deployment.yml
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

avec le binaire ARM 64 Bits fourni :

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

Lancement du tunnel depuis la carte Raspberry Pi 4 :

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

Et lancement de ce Reverse Proxy local :

Image for post
Image for post

avec le démonstrateur FCA en local :

Image for post
Image for post

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 :

Image for post
Image for post

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

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

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

Image for post
Image for post

et avec lui je peux accéder au cluster :

Image for post
Image for post

Je redéploie le démonstrateur FCA :

Image for post
Image for post

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

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

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

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

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

Image for post
Image for post

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 :

Image for post
Image for post

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

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store