OpenNebula 5.12 avec Firecracker : gérer les charges de travail avec des microVMs dans les clouds privés ou hybrides …

Karim
7 min readJul 5, 2020

Firecracker est une technologie de virtualisation open source spécialement conçue pour créer et gérer des conteneurs sécurisés et multi-tenants ainsi que des services basés sur des fonctions qui fournissent des modèles opérationnels en mode serverless.

Firecracker exécute des charges de travail dans des machines virtuelles légères, appelées microVM, qui combinent les propriétés de sécurité et d’isolement fournies par la technologie de virtualisation matérielle avec la vitesse et la flexibilité des conteneurs.

Le composant principal de Firecracker est un moniteur de machine virtuelle (VMM) qui utilise l’hyperviseur KVM pour créer et exécuter des microVMs. Firecracker a un design minimaliste. Il exclut les périphériques inutiles et les fonctionnalités destinées aux invités pour réduire l’empreinte mémoire et la surface d’attaque de chaque microVM. Cela améliore la sécurité, diminue le temps de démarrage et augmente l’utilisation du matériel. Firecracker prend actuellement en charge les processeurs Intel, AMD et ARM. Firecracker a également été intégré dans des environnements d’exécution des conteneurs, par exemple Kata Containers et Weaveworks Ignite.

Rappel d’anciens articles à ce sujet :

Firecracker a été développé chez Amazon Web Services pour accélérer la vitesse et l’efficacité de services comme AWS Lambda et AWS Fargate. Firecracker est open source sous Apache version 2.0.

OpenNebula a sorti la version 5.12 de sa plate-forme éponyme en utilisant Firecracker comme option de virtualisation en conjonction de KVM, LXD et VMware :

Cette nouvelle version apporte notamment l’intégration transparente avec des places de marchés comme Docker Hub ou l’exécution directe d’images Docker sur microVM et leur composition dans des conteneurs avec mise à l’échelle automatique …

Je pars donc pour cette nouvelle expérience d’une instance Ubuntu 20.04 LTS 64 Bits dans DigitalOcean qui permet l’accès à de la virtualisation imbriquée :

Et j’utilise pour cela la dernière version de MiniONE, un outil de déploiement facile à utiliser pour construire un cloud OpenNebula basé soit sur des machines virtuelles (KVM), des conteneurs système (LXD), des micro VM (Firecracker) ou un déploiement Edge auprès du fournisseur cloud Packet.

Tous les composants nécessaires pour gérer et exécuter les machines virtuelles ou les conteneurs sont installés et configurés sur un système dédié en une seule commande …

Rappel de cet ancien article vis à vis de MiniONE …

Récupération du script :

et lancement de MiniONE avec Firecracker (en chargeant une image Ubuntu du Docker Hub et avec un dashboard accessible sur le port TCP 8888) :

L’installation se termine avec les identifiants générés automatiquement pour le compte administrateur de la plate-forme.

Accès au dashboard d’OpenNebula :

Je charge l’image officielle Node.js du Docker Hub en LTS avec Alpine Linux

sur le datastore local :

et je modifie les paramêtres de cette image dans le contexte d’utilisation de Firecracker parmis les templates disponibles.

Je lance directement 6 MicroVMs avec Firecracker et cette image officielle Node.js du Docker Hub.

Comme pour une machine virtuelle classique, je vais utiliser Puppet Bolt pour populer ses instances Firecracker avec le sempiternel démonstrateur FC :

en commençant par son installation.

install.yaml

Puis exécution du plan avec Bolt vers ces microVMS Firecracker.

Et le démonstrateur FC est disponibles sur ces dernières :

avec ce fichier de configuration TOML :

config.toml

GoBetween va donc officier pour répartir la charge sur chacune des MicroVMs hébergeant le démonstrateur FC :

Sur le Port 80 de l’instance MiniONE, j’accède au démonstrateur FC.

--

--