Compagnie canonique Lancement d'outils pour organiser le travail des conteneurs isolés , gestionnaire de conteneurs et FS virtuel Pour simuler les vues /proc, /sys et cgroupfs virtualisées dans les conteneurs pour les distributions sans prise en charge de l'espace de noms cgroup. La version 4.0 est conçue comme une version à support long terme, avec des mises à jour générées sur une période de 5 ans.
LXC est un environnement d'exécution permettant d'exécuter des conteneurs système et des conteneurs spécifiques aux applications (OCI). LXC inclut la bibliothèque liblxc, un ensemble d'utilitaires (lxc-create, lxc-start, lxc-stop, lxc-ls, etc.), des modèles pour la création de conteneurs et un ensemble de liaisons pour différents langages de programmation. L'isolation est assurée par les mécanismes natifs du noyau Linux. Les espaces de noms permettent d'isoler les processus, la pile réseau (ipc, uts), les identifiants utilisateurs et les points de montage. Les groupes de contrôle permettent de limiter les ressources. Les fonctionnalités du noyau, telles que les profils Apparmor et SELinux, les stratégies Seccomp, les chroots (pivot_root), ainsi que d'autres fonctionnalités, permettent de réduire les privilèges et de restreindre les accès. Code LXC en langage C et distribué sous licence GPLv2.
LXD est une couche sur LXC, CRIU et QEMU, utilisée pour la gestion centralisée des conteneurs et des machines virtuelles sur un ou plusieurs serveurs. Alors que LXC fournit des outils de bas niveau pour manipuler des conteneurs individuels, LXD est implémenté comme un processus d'arrière-plan qui accepte les requêtes réseau via une API REST et permet la création de configurations évolutives déployées sur un cluster de plusieurs serveurs.
La prise en charge de divers backends de stockage (arborescence de répertoires, ZFS, Btrfs, LVM), des instantanés avec tranches d'état, la migration en direct de conteneurs en cours d'exécution d'une machine à une autre et des outils de stockage d'images sont disponibles. Code LXD écrit en langage Go et distribué sous la licence Apache 2.0.
Clé dans LXC 4.0 :
- Le pilote cgroup a été entièrement réécrit. La prise en charge d'une hiérarchie cgroup unifiée (cgroup2) a été ajoutée. Une fonctionnalité de contrôleur Freezer a été ajoutée, permettant d'arrêter les opérations cgroup et de libérer temporairement des ressources (processeur, E/S et potentiellement même de la mémoire) pour d'autres tâches.
- Infrastructure mise en œuvre pour intercepter les appels système ;
- Ajout de la prise en charge du sous-système de noyau « pidfd », conçu pour gérer la situation avec la réutilisation des PID (pidfd est associé à un processus spécifique et ne change pas, tandis qu'un PID peut être associé à un autre processus après la fin du processus actuel associé à ce PID) ;
- Création et suppression améliorées des périphériques réseau, ainsi que leur déplacement entre les espaces de noms des sous-systèmes réseau ;
- Mise en œuvre de la possibilité de déplacer des périphériques réseau sans fil (nl80211) dans des conteneurs.
Clé dans LXD 4.0 :
- Ajout de la prise en charge de l'exécution non seulement de conteneurs, mais également de machines virtuelles ;
- Pour segmenter les serveurs LXD, nous avons introduit le concept de projets, simplifiant ainsi la gestion des groupes de conteneurs et de machines virtuelles. Chaque projet peut inclure son propre ensemble de conteneurs, de machines virtuelles, d'images, de profils et de partitions de stockage. Des contraintes personnalisées peuvent être attribuées aux projets et configurées.
- Ajout de la prise en charge de l'interception des appels système pour les conteneurs ;
- Mise en œuvre de la création de copies de sauvegarde des environnements et de la restauration à partir de celles-ci ;
- La création automatisée d'instantanés d'environnements et de sections de stockage est fournie, avec la possibilité de définir la durée de vie des instantanés ;
- API ajoutée pour surveiller l'état du réseau (informations réseau lxc) ;
- Prise en charge supplémentaire , un système de fichiers virtuel permettant de mapper des points de montage à des espaces de noms utilisateur ;
- De nouveaux types d'adaptateurs réseau « ipvlan » et « routed » sont proposés ;
- Backend ajouté pour l'utilisation du stockage basé sur CephFS ;
- La prise en charge de la réplication d’images et des configurations multi-architectures a été implémentée pour les clusters ;
- Ajout de la possibilité de contrôler l'accès en fonction des rôles (RBAC) ;
- Prise en charge ajoutée pour CGroup2 ;
- Ajout de la possibilité de configurer les adresses MAC et de déterminer l'adresse source pour NAT ;
- API ajoutée pour la gestion des liaisons DHCP (baux) ;
- Prise en charge ajoutée pour Nftables.
Source: opennet.ru
