J'utilise LXD sur une variété de plateformes, allant du bare metal tels qu'un HP ProLiant et un Raspberry Pi jusqu'au cloud computing, incluant une instance EC2 d'Amazon Web Services (AWS). Notez que ces hôtes ont des caractéristiques différentes dont leur architecture: x86 et ARM. LXD est présent sur toutes les distributions modernes d'Ubuntu Server. Sous licence libre et open source, LXD s'inscrit dans ma démarche d'indépendance numérique. Le système est compatible avec un large choix de matériel et de solutions. Peu exigeant en ressources, il peut être exécuté sur des machines modestes, et je privilégie l'utilisation de matériel de seconde main pour prolonger leur durée de vie. Si vous ne l'aviez pas encore deviné, ce post que vous lisez est affiché grâce à des conteneurs LXD répartis sur plusieurs hôtes. 😎
LXD
LXD (Linux Container Daemon) est un gestionnaire de conteneurs et de machines virtuelles dont le principal développeur est Canonical, la société mère d'Ubuntu. Techniquement, il s'agit d'un daemon pour gérer des conteneurs LXC à travers une API REST. Concrètement, il est plus aisé d'utiliser l'interface de LXD car LXC est un outil de bas niveau.
Liste de conteneurs et de machines virtuelles dans un Terminal
LXC
LXC (Linux Containers) est une technologie de virtualisation au niveau du système d'exploitation qui permet de faire fonctionner plusieurs environnements GNU/Linux isolés sur un même hôte GNU/Linux. Contrairement à la virtualisation traditionnelle qui émule du matériel pour créer des machines virtuelles, LXC utilise les fonctionnalités de l'espace utilisateur et du kernel GNU/Linux pour séparer les processus et gérer les ressources de façon native.
Fonctionnalités de LXD
Système de conteneurisation
- Les conteneurs (CT) permettent de disposer d'un système d'exploitation complet et cloisonné.
- Les CT utilisent le kernel de l'hôte.
- Les performances d'un CT sont identiques à celles d'une machine physique.
Système de virtualisation
- Les machines virtuelles (VM) disposent de leur propre kernel et d'un système d'exploitation qui ne dépendent pas de l'hôte.
- Les VM ne sont pas limitées par les versions du système d'exploitation ou du kernel de l'hôte.
Clustérisation
- Exécuter jusqu'à 50 nœuds dans un même cluster pour 1000 instances disponibles.
- Déployer des CT, des VM ou une combinaison des deux.
- Une base de données unifiée pour l'ensemble des nœuds.
- La gestion centralisée.
Caractéristiques
- Dimensionner les ressources aisément : CPU, mémoire, réseau I/O, espace disque, ressources du kernel, etc.
- Gestion des snapshots avancée avec planification et expiration.
- Accès multi-utilisateurs et isolation des environnements pour plus de sécurité.
- "Hardware passthrough", un accès direct aux composants matériels de l'hôte : GPU, USB, interfaces réseau, disques, etc.
- Migration à chaud et snapshot stateful.
- Mise en réseau avancée et sécurisée : OVN, SR-IOV, accélération matérielle prise en charge.
- Haute disponibilité du cluster avec stockage CEPH et réseaux redondants.
- Durée LTS de 2 ans, maintenue pendant 5 ans.
Mon retour d'expérience sur 7 ans de LXD
LXD est robuste et offre une gamme de fonctionnalités complète pour explorer la conteneurisation. Le mode de virtualisation est particulièrement facile à prendre en main concernant les OS GNU/Linux. La documentation est complète, en plus d'une communauté présente et active où l'on trouve facilement la réponse à nos questions. Dans un contexte professionnel, le support commercial de Canonical est un atout non négligeable. Je suis très satisfait de mon expérience avec LXD et je vous le recommande vivement. Mon aventure continue avec ce produit que je suis fier d'utiliser. Bien entendu, d'autres posts suivront sur ce sujet.