Lancement de l'outil de gestion de conteneurs LXC et LXD 4.0

Compagnie canonique опубликовала sortie d'outils pour organiser le travail des conteneurs isolés LXC4.0, gestionnaire de conteneurs LXD4.0 et FS virtuel LXCFS4.0 pour la simulation dans les conteneurs /proc, /sys et une représentation cgroupfs virtualisée pour les distributions sans prise en charge des espaces de noms cgroup. La branche 4.0 est classée comme une version de support à long terme, pour laquelle les mises à jour sont générées sur une période de 5 ans.

LXC est un environnement d'exécution permettant d'exécuter à la fois des conteneurs système et des conteneurs OCI. LXC comprend la bibliothèque liblxc, un ensemble d'utilitaires (lxc-create, lxc-start, lxc-stop, lxc-ls, etc.), des modèles pour créer des conteneurs et un ensemble de liaisons pour divers langages de programmation. L'isolation est effectuée à l'aide des mécanismes standard du noyau Linux. Pour isoler les processus, la pile réseau ipc, les uts, les ID utilisateur et les points de montage, le mécanisme des espaces de noms est utilisé. Les groupes de contrôle sont utilisés pour limiter les ressources. Pour réduire les privilèges et limiter l'accès, des fonctionnalités du noyau telles que les profils Apparmor et SELinux, les politiques Seccomp, les Chroots (pivot_root) et les capacités sont utilisées. Code LXC est écrit en langage C et distribué sous licence GPLv2.

LXD est un module complémentaire à LXC, CRIU et QEMU utilisé pour gérer de manière centralisée les conteneurs et les machines virtuelles sur un ou plusieurs serveurs. Si LXC est une boîte à outils de bas niveau pour la manipulation au niveau des conteneurs individuels, alors LXD est implémenté en tant que processus d'arrière-plan qui accepte les requêtes sur le réseau via l'API REST et vous permet de créer des configurations évolutives déployées sur un cluster de plusieurs serveurs.
Divers backends de stockage sont pris en charge (arborescence de répertoires, ZFS, Btrfs, LVM), des instantanés avec une tranche d'état, une migration en direct des conteneurs en cours d'exécution d'une machine à une autre et des outils pour organiser le stockage d'images. Code LXD est écrit en Go et distribué sous licence Apache 2.0.

Clé améliorations dans LXC 4.0 :

  • Le pilote a été complètement réécrit pour fonctionner avec cgroup. Ajout de la prise en charge de la hiérarchie de groupe de contrôle unifiée (cgroup2). Ajout d'une fonctionnalité de contrôleur de congélation, avec laquelle vous pouvez arrêter de travailler dans un groupe de contrôle et libérer temporairement certaines ressources (CPU, E/S et potentiellement même mémoire) pour effectuer 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 de réutilisation de 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 de périphériques réseau, ainsi que leur déplacement entre les espaces de noms des sous-systèmes réseau ;
  • La possibilité de déplacer des périphériques réseau sans fil (nl80211) dans des conteneurs a été implémentée.

Clé améliorations dans LXD 4.0 :

  • Ajout de la prise en charge du lancement non seulement de conteneurs, mais également de machines virtuelles ;
  • Pour segmenter les serveurs LXD, un concept de projet a été proposé qui simplifie 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. Dans le cadre des projets, vous pouvez définir vos propres restrictions et modifier les paramètres ;
  • 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 leur restauration ;
  • La création automatisée d'instantanés d'environnements et de partitions de stockage est fournie avec la possibilité de définir la durée de vie de l'instantané ;
  • Ajout d'une API pour surveiller l'état du réseau (informations sur le réseau lxc) ;
  • Prise en charge supplémentaire shiftfs, FS virtuel pour mapper les points de montage aux espaces de noms utilisateur ;
  • De nouveaux types d'adaptateurs réseau « ipvlan » et « routé » ont été proposés ;
  • Ajout d'un backend 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 du contrôle d'accès basé sur les rôles (RBAC) ;
  • Ajout de la prise en charge de CGroup2 ;
  • Ajout de la possibilité de configurer l'adresse MAC et de déterminer l'adresse source pour NAT ;
  • Ajout d'une API pour la gestion des liaisons DHCP (baux) ;
  • Ajout du support pour Nftables.

Source: opennet.ru

Ajouter un commentaire