Publication des outils de gestion des conteneurs LXC 6.0, Incus 6.0 et LXD 5.21.1

La communauté des Conteneurs Linux a publié une nouvelle version de l'outil pour organiser le travail des conteneurs isolés LXC 6.0, offrant un runtime adapté à la fois à l'exécution de conteneurs avec un environnement système complet, semblable à des machines virtuelles, et à l'exécution de conteneurs d'applications individuelles non privilégiées (OCI). LXC est considéré comme un outil de bas niveau fonctionnant au niveau individuel des conteneurs. Pour la gestion centralisée des conteneurs déployés dans un cluster de plusieurs serveurs, des systèmes comme Incus et LXD sont développés sur la base de LXC. La branche LXC 6.0 est classée comme une version à long terme, dont les mises à jour sont fournies pendant 5 ans (jusqu'en 2029). Le code de LXC est écrit en langage C et est distribué sous licence GPLv2.

LXC comprend la bibliothèque liblxc, un ensemble d'outils (lxc-create, lxc-start, lxc-stop, lxc-ls, etc.), des modèles pour la création de conteneurs et un ensemble de bindings pour divers langages de programmation. L'isolation est réalisée à l'aide des mécanismes intégrés du noyau Linux. Pour l'isolation des processus, de la pile réseau ipc, des uts, des identifiants d'utilisateurs et des points de montage, le mécanisme des espaces de noms (namespaces) est utilisé. Les ressources sont limitées par des cgroups. Pour réduire les privilèges et restreindre l'accès, des fonctionnalités du noyau comme les profils Apparmor et SELinux, les politiques Seccomp, Chroots (pivot_root) et les capabilities sont mises en œuvre.

Principales modifications :

  • Il est désormais possible de compiler un fichier exécutable universel lxc, combinant dans un seul utilitaire toutes les commandes précédemment disponibles sous forme d'utilitaires séparés « lxc-* ». Pour compiler ce fichier exécutable unique, l'option « tools-multicall=true » a été proposée, qui, lorsque activée, crée tous les anciens utilitaires comme des liens symboliques vers l'utilitaire lxc. La compilation sous forme d'un seul fichier exécutable permet de réduire considérablement l'espace disque utilisé par l'outil, ce qui est pertinent pour les systèmes embarqués.
  • La bibliothèque liblxc a été enrichie d'une fonction set_timeout, permettant de définir un délai d'attente pour toutes les opérations d'interaction avec le moniteur LXC.
  • Dans l'interface des ponts réseau, lxcbr0 est activé par défaut. de l'IPv6 avec l'attribution d'adresses provenant de la plage IPv6 ULA (Adresse locale unique).
  • Dans l'utilitaire lxc-usernsexec, des options « -u » et « -g » ont été ajoutées pour modifier les identifiants utilisateur et groupe (UID et GID).
  • Dans l'utilitaire lxc-checkconfig, la version est affichée uniquement en présence de la commande lxc-start, et il a été ajouté un message concernant le nombre maximal autorisé de chaque type d'espace de noms.
  • Le support des images de conteneurs au format OCI a été ajouté, dans lequel le système de fichiers Squashfs est utilisé pour compresser les informations.
  • Pour interagir avec systemd via D-Bus, une bibliothèque distincte libdbus-1 est utilisée au lieu de libsystemd.
  • Le support du système d'initialisation Upstart a été abandonné.

Le projet Incus a été publié simultanément, dans le cadre duquel la communauté des Linux Containers développe un fork du système de gestion de conteneurs LXD, créé par l'ancienne équipe de développeurs qui avait initialement conçu LXD. Le code d'Incus est écrit en Go et est distribué sous la licence Apache 2.0. Incus 6.0 est d'abord positionné comme la branche stable pour laquelle un long cycle de mise à jour (LTS) sera garanti. Parmi les modifications apportées à Incus 6.0, on note la possibilité de créer des interfaces réseau via l'API bridge.external_interfaces, une amélioration du support de l'authentification via JWT (JSON Web Token), le support USB, ainsi qu'une présentation détaillée des informations système avec la commande « incus info --resources », et le support de la version LXD 5.21 dans l'outil lxd-to-incus.

Incus et LXD fournissent des moyens de gestion centralisée des conteneurs et des machines virtuelles, déployés à la fois sur un seul hôte et dans un cluster de plusieurs. serveursLe projet est réalisé sous la forme d'un processus en arrière-plan, prenant des demandes via le réseau via une API REST et supportant divers backend de stockage (arborescence de répertoires, ZFS, Btrfs, LVM), des snapshots de l'état, la migration en direct des conteneurs fonctionnels d'une machine à une autre et des outils pour stocker les images des conteneurs. Pour exécuter les conteneurs, l'outillage LXC est utilisé. L'isolation est réalisée à l'aide des mécanismes standards du noyau Linux (namespaces, cgroups, Apparmor, SELinux, Seccomp).

La communauté des Linux Containers a supervisé le développement de LXD avant que la société Canonical ne décide de transformer LXD en projet d'entreprise. L'objectif du fork est de fournir une alternative gérée par une communauté indépendante au projet LXD, qui est sous le contrôle de la société Canonical. La création d'Incus a également permis de corriger certaines erreurs conceptuelles faites lors du développement de LXD, qui ne pouvaient auparavant être corrigées sans rompre la compatibilité descendante.

La société Canonical a publié une nouvelle version du système de gestion de conteneurs LXD 5.21.1. La branche LXD 5.21 est marquée comme LTS et sera supportée jusqu'en juin 2029. Le code ajouté à LXD par les employés de Canonical est sous licence AGPLv3, mais le code des contributeurs externes, pour lequel Canonical n'a pas de droits de propriété, reste sous Apache 2.0. Parmi les changements fonctionnels de LXD 5.21.1, on peut noter la migration du paquet snap de LXD vers les branches LXC 6.0 et LXCFS 6.0. Une extension a été ajoutée à l'API pour storage_volumes_all et son gestionnaire associé \/1.0\/storage_volumes pour afficher la liste de tous les volumes de stockage. Une extension instances_files_modify_permissions a été ajoutée pour modifier via l'API les permissions d'accès aux fichiers existants.

La sortie du système de fichiers virtuel LXCFS 6.0 est disponible, utilisé pour simuler dans les conteneurs des pseudo-systèmes de fichiers \/proc et \/sys, ainsi que pour une représentation virtualisée de cgroupfs pour les distributions ne prenant pas en charge les espaces de noms cgroup. La nouvelle version inclut une option « —enable-cgroup », permettant de gérer l'activation de la fonctionnalité intégrée pour créer un arbre virtuel croupfs pour les conteneurs, en utilisant cgroupv1 (actuellement, la plupart des distributions supportent les espaces de noms cgroup fournis par le noyau, donc l'activation par défaut d'une alternative intégrée n'a plus de sens et est désormais optionnelle). De plus, LXCFS 6.0 met fin à la filtration CPU lors de la création du fichier \/sys\/devices\/system\/cpu, selon l'état online\/offline.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster