Veröffentlichung der Werkzeuge zur Verwaltung von Containern LXC 6.0, Incus 6.0 und LXD 5.21.1

Die Community der Linux-Container hat die Release-Version 6.0 des Tools zur Verwaltung isolierter LXC-Container veröffentlicht. Dieses bietet eine Laufzeitumgebung, die sowohl für die Ausführung von Containern mit vollständiger Systemumgebung, die nahe an virtuellen Maschinen arbeiten, als auch für die Ausführung von unprivilegierten Containern einzelner Anwendungen (OCI) geeignet ist. LXC zählt zu den Low-Level-Tools, die auf der Ebene einzelner Container arbeiten. Für das zentrale Management von Containern, die in einem Cluster von mehreren Servern bereitgestellt werden, entwickeln sich die Systeme Incus und LXD auf Basis von LXC. Die Version 6.0 von LXC gehört zu den Releases mit langfristiger Unterstützung, deren Updates über einen Zeitraum von 5 Jahren (bis 2029) bereitgestellt werden. Der LXC-Code ist in C geschrieben und wird unter der GPLv2-Lizenz vertrieben.

Die LXC umfasst die Bibliothek liblxc, eine Sammlung von Tools (lxc-create, lxc-start, lxc-stop, lxc-ls usw.), Vorlagen für den Aufbau von Containern und eine Reihe von Bindings für verschiedene Programmiersprachen. Die Isolation erfolgt durch die standardmäßigen Mechanismen des Linux-Kernels. Zur Isolation von Prozessen, Netzwerk-Stacks, IPC, UTS, Benutzer-ID und Mount-Punkten wird der Namensraum-Mechanismus (namespaces) verwendet. Ressourcen werden mit cgroups limitiert. Zur Herabsetzung der Berechtigungen und zur Einschränkung des Zugriffs kommen Funktionen des Kernels wie Apparmor-Profile, SELinux, Seccomp-Politiken, Chroots (pivot_root) und capabilities zum Einsatz.

Wesentliche Änderungen:

  • Die Möglichkeit wurde geschaffen, eine universelle ausführbare Datei lxc zu erstellen, die alle zuvor als separate „lxc-*“-Tools bereitgestellten Befehle in einem einzigen Dienstprogramm vereint. Um die Zusammenstellung der aggregierten ausführbaren Datei zu ermöglichen, wurde die Option „tools-multicall=true“ vorgeschlagen, bei der alle alten separaten Dienstprogramme als symbolische Links auf das Dienstprogramm lxc erstellt werden. Die Zusammenstellung in Form einer einzelnen ausführbaren Datei reduziert erheblich den Speicherbedarf für Werkzeuge, was besonders für eingebettete Systeme relevant ist.
  • In die Bibliothek liblxc wurde die Funktion set_timeout integriert, die es ermöglicht, Zeitüberschreitungen für alle Operationen im Zusammenhang mit dem LXC-Monitor festzulegen.
  • Im Netzwerkbrückeninterface lxcbr0 ist standardmäßig aktiviert IPv6-Unterstützung die Adressvergabe aus dem IPv6 ULA (Unique Local Address) Subnetz.
  • Im Dienstprogramm lxc-usernsexec wurden die Optionen „-u“ und „-g“ hinzugefügt, um die Benutzer- und Gruppenidentifikatoren (UID und GID) zu ändern.
  • Im Dienstprogramm lxc-checkconfig wird die Version nur angezeigt, wenn der Befehl lxc-start vorhanden ist, und es wurde eine Benachrichtigung über die maximal zulässige Anzahl jedes Typs von Namensräumen hinzugefügt.
  • Die Unterstützung von Container-Images im OCI-Format wurde hinzugefügt, bei denen das Dateisystem Squashfs zur Datenkompression verwendet wird.
  • Für die Interaktion mit systemd über D-Bus wird eine separate Bibliothek libdbus-1 anstelle von libsystemd verwendet.
  • Die Unterstützung für das Init-System Upstart wurde eingestellt.

Gleichzeitig wurde die Veröffentlichung des Projekts Incus bekannt gegeben, im Rahmen dessen die Community der Linux-Container einen Fork des Container-Management-Systems LXD entwickelt, das von der ursprünglichen Entwicklergruppe erstellt wurde, die einst LXD ins Leben rief. Der Code von Incus ist in Go geschrieben und wird unter der Lizenz Apache 2.0 verbreitet. Incus 6.0 positioniert sich als erste stabile Version, für die ein langfristiger Update-Zyklus (LTS) gewährleistet wird. Zu den Änderungen in Incus 6.0 gehört die Möglichkeit, Netzwerkinterfaces über die API bridge.external_interfaces zu erstellen, sowie Verbesserungen bei der Unterstützung der Authentifizierung über JWT (JSON Web Token), USB-Unterstützung und die Anzeige detaillierter Systeminformationen mit dem Befehl „incus info —resources“, sowie die Unterstützung der Version LXD 5.21 in dem Tool lxd-to-incus.

Incus und LXD bieten Werkzeuge zur zentralisierten Verwaltung von Containern und virtuellen Maschinen, die sowohl auf einem einzelnen Host als auch in einem Cluster aus mehreren Hosts bereitgestellt werden. Server. Das Projekt wurde als Hintergrundprozess realisiert, der Anfragen über das Netzwerk über REST API entgegennimmt und verschiedene Backend-Speicher (Verzeichnisbaum, ZFS, Btrfs, LVM) unterstützt. Es bietet Snapshots für Statusschnitte, Live-Migration von laufenden Containern von einem Server zu einem anderen und Mittel zur Speicherung von Container-Images. Als Runtime zur Ausführung von Containern wird das LXC-Toolset verwendet. Die Isolierung erfolgt durch die nativen Mechanismen des Linux-Kernels (Namespaces, cgroups, Apparmor, SELinux, Seccomp).

Die Linux Containers Community hat die Entwicklung von LXD betreut, bevor das Unternehmen Canonical beschloss, LXD in ein Unternehmensprojekt umzuwandeln. Ziel des Forks ist es, eine von einer unabhängigen Gemeinschaft verwaltete Alternative zum LXD-Projekt anzubieten, das von Canonical kontrolliert wird. Die Schaffung von Incus bietet zudem die Möglichkeit, bestimmte konzeptionelle Fehler zu beheben, die bei der Entwicklung von LXD gemacht wurden und die zuvor ohne Verletzung der Abwärtskompatibilität nicht korrigiert werden konnten.

Die Firma Canonical hat eine neue Version des Container-Management-Systems LXD 5.21.1 veröffentlicht. Die Version LXD 5.21 ist als LTS gekennzeichnet und wird bis Juni 2029 unterstützt. Der von den Mitarbeitern von Canonical hinzugefügte Code wird unter der Lizenz AGPLv3 bereitgestellt, während der Code von Drittanbietern, an dem Canonical keine Eigentumsrechte hat, unter Apache 2.0 bleibt. Zu den funktionalen Änderungen in LXD 5.21.1 gehört der Übergang des Snap-Pakets von LXD auf die Branches LXC 6.0 und LXCFS 6.0. Eine Erweiterung des APIs namens storage_volumes_all sowie ein zugehöriger Handler /1.0/storage_volumes zum Auflisten aller Speicherbereiche wurden hinzugefügt. Außerdem wurde die Erweiterung instances_files_modify_permissions hinzugefügt, um über die API die Zugriffsrechte auf vorhandene Dateien zu ändern.

Die Version 6.0 von LXCFS ist verfügbar, die verwendet wird, um in Containern eine Pseudo-FS /proc und /sys zu simulieren sowie eine virtualisierte Darstellung von cgroupfs für Distributionen ohne Unterstützung von cgroup-Namensräumen bereitzustellen. In dieser neuen Version wurde die Option „—enable-cgroup“ hinzugefügt, die es ermöglicht, die integrierte Funktionalität zur Erstellung eines virtuellen cgroupfs-Baums für Container mithilfe von cgroupv1 zu aktivieren (derzeit unterstützen die meisten Distributionen die von den Kernen bereitgestellten Namensräume für cgroup, sodass die standardmäßige Aktivierung der alternativen Implementierung nicht mehr sinnvoll ist und nun optional ist). Darüber hinaus wurde in LXCFS 6.0 die CPU-Filterung beim Erstellen der Datei /sys/devices/system/cpu, abhängig vom Zustand online/offline, eingestellt.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster