Veröffentlichung der Container-Management-Tools LXC und LXD 4.0

Kanonisches Unternehmen опубликовала Veröffentlichung von Tools zur Organisation der Arbeit isolierter Container LXC 4.0, Containermanager LXD4.0 und virtuelle FS LXCFS 4.0 zur Simulation in /proc-, /sys-Containern und einer virtualisierten cgroupfs-Darstellung für Distributionen ohne Unterstützung für cgroup-Namespaces. Branch 4.0 wird als Langzeit-Support-Release eingestuft, für das Updates über einen Zeitraum von 5 Jahren generiert werden

LXC ist eine Laufzeit zum Ausführen von Systemcontainern und OCI-Containern. LXC umfasst die liblxc-Bibliothek, eine Reihe von Dienstprogrammen (lxc-create, lxc-start, lxc-stop, lxc-ls usw.), Vorlagen zum Erstellen von Containern und eine Reihe von Bindungen für verschiedene Programmiersprachen. Die Isolierung erfolgt über Standardmechanismen des Linux-Kernels. Um Prozesse, den IPC-Netzwerk-Stack, UTS, Benutzer-IDs und Mount-Punkte zu isolieren, wird der Namespace-Mechanismus verwendet. cgroups werden verwendet, um Ressourcen zu begrenzen. Um Berechtigungen zu senken und den Zugriff einzuschränken, werden Kernel-Funktionen wie Apparmor- und SELinux-Profile, Seccomp-Richtlinien, Chroots (pivot_root) und Funktionen verwendet. Code LXC geschrieben ist in C-Sprache und unter der GPLv2-Lizenz vertrieben.

LXD ist ein Add-on zu LXC, CRIU und QEMU, das zur zentralen Verwaltung von Containern und virtuellen Maschinen auf einem oder mehreren Servern dient. Wenn es sich bei LXC um ein Low-Level-Toolkit zur Manipulation auf der Ebene einzelner Container handelt, wird LXD als Hintergrundprozess implementiert, der Anfragen über das Netzwerk über die REST-API entgegennimmt und es Ihnen ermöglicht, skalierbare Konfigurationen zu erstellen, die auf einem Cluster aus mehreren Servern bereitgestellt werden.
Es werden verschiedene Speicher-Backends unterstützt (Verzeichnisbaum, ZFS, Btrfs, LVM), Snapshots mit einem Status-Slice, Live-Migration laufender Container von einer Maschine auf eine andere und Tools zum Organisieren der Bildspeicherung. Code LXD geschrieben ist in Go und wird unter der Apache 2.0-Lizenz vertrieben.

Taste Verbesserungen in LXC 4.0:

  • Der Treiber wurde komplett neu geschrieben, um mit cgroup zu funktionieren. Unterstützung für eine einheitliche Cgroup-Hierarchie (cgroup2) hinzugefügt. Freezer-Controller-Funktionalität hinzugefügt, mit der Sie die Arbeit in einer Kontrollgruppe stoppen und vorübergehend einige Ressourcen (CPU, I/O und möglicherweise sogar Speicher) für die Ausführung anderer Aufgaben freigeben können;
  • Implementierte Infrastruktur zum Abfangen von Systemaufrufen;
  • Unterstützung für das Kernel-Subsystem „pidfd“ hinzugefügt, das darauf ausgelegt ist, die Situation der PID-Wiederverwendung zu bewältigen (pidfd ist einem bestimmten Prozess zugeordnet und ändert sich nicht, während eine PID einem anderen Prozess zugeordnet werden kann, nachdem der aktuelle Prozess, der dieser PID zugeordnet ist, beendet wird). ;
  • Verbesserte Erstellung und Löschung von Netzwerkgeräten sowie deren Bewegung zwischen Netzwerk-Subsystem-Namespaces;
  • Die Möglichkeit, drahtlose Netzwerkgeräte (nl80211) in Container zu verschieben, wurde implementiert.

Taste Verbesserungen in LXD 4.0:

  • Unterstützung für den Start nicht nur von Containern, sondern auch von virtuellen Maschinen hinzugefügt;
  • Zur Segmentierung von LXD-Servern wurde ein Projektkonzept vorgeschlagen, das die Verwaltung von Gruppen von Containern und virtuellen Maschinen vereinfacht. Jedes Projekt kann seinen eigenen Satz an Containern, virtuellen Maschinen, Bildern, Profilen und Speicherpartitionen enthalten. Im Zusammenhang mit Projekten können Sie eigene Einschränkungen festlegen und Einstellungen ändern;
  • Unterstützung für das Abfangen von Systemaufrufen für Container hinzugefügt;
  • Implementierung der Erstellung von Sicherungskopien von Umgebungen und deren Wiederherstellung;
  • Die automatische Erstellung von Snapshots von Umgebungen und Speicherpartitionen bietet die Möglichkeit, die Lebensdauer des Snapshots festzulegen.
  • API zur Überwachung des Netzwerkstatus hinzugefügt (LXC-Netzwerkinformationen);
  • Unterstützung hinzugefügt Shiftfs, virtueller FS zum Zuordnen von Mount-Punkten zu Benutzernamensräumen;
  • Es wurden neue Arten von Netzwerkadaptern „ipvlan“ und „routed“ vorgeschlagen;
  • Backend für die Verwendung von CephFS-basiertem Speicher hinzugefügt;
  • Für Cluster wurde Unterstützung für Image-Replikation und Multi-Architektur-Konfigurationen implementiert;
  • Rollenbasierte Zugriffskontrolle (RBAC) hinzugefügt;
  • Unterstützung für CGroup2 hinzugefügt;
  • Möglichkeit hinzugefügt, die MAC-Adresse zu konfigurieren und die Quelladresse für NAT zu bestimmen;
  • API zum Verwalten von DHCP-Bindungen (Leases) hinzugefügt;
  • Unterstützung für Nftables hinzugefügt.

Source: opennet.ru

Kommentar hinzufügen