Die zweite Ausgabe des Incus-Projekts wurde vorgestellt, innerhalb dessen die Linux-Containers-Community einen Fork des Container-Management-Systems LXD entwickelt, das von einem früheren Team von Entwicklern geschaffen wurde, das einst LXD entwickelt hat. Der Code von Incus ist in Go geschrieben und steht unter der Apache 2.0-Lizenz.
Erinnern wir uns daran, dass die Gemeinschaft der Linux-Container die Entwicklung von LXD beaufsichtigt hat, bis das Unternehmen Canonical beschloss, LXD separat als Unternehmensprojekt weiterzuentwickeln. Ziel des Forks ist es, eine von einer unabhängigen Gemeinschaft verwaltete Alternative zum LXD-Projekt, das unter der Kontrolle von Canonical steht, bereitzustellen. Im Rahmen des Projekts Incus ist auch geplant, einige konzeptionelle Fehler zu beheben, die bei der Entwicklung von LXD gemacht wurden und zuvor nicht behoben werden konnten, ohne die Abwärtskompatibilität zu verletzen.
Incus bietet Werkzeuge für das zentrale Management von Containern und virtuellen Maschinen, die sowohl auf einem einzelnen Host als auch in einem Cluster von mehreren bereitgestellt werden. Server. Das Projekt wird als Hintergrundprozess implementiert, der Anfragen über das Netzwerk über eine REST API entgegennimmt und verschiedene Backend-Speicher (Verzeichnishierarchie, ZFS, Btrfs, LVM) unterstützt, Snapshots des Zustands, die Live-Migration von laufenden Containern von einem Rechner zu einem anderen und Werkzeuge zur Speicherung von Container-Images. Als Runtime zum Starten der Container wird das LXC-Toolkit verwendet, das die Bibliothek liblxc, eine Sammlung von Dienstprogrammen (lxc-create, lxc-start, lxc-stop, lxc-ls usw.), Vorlagen zum Erstellen von Containern und eine Sammlung von Bindungen für verschiedene Programmiersprachen umfasst. Die Isolierung erfolgt mittels der Standardmechanismen des Linux-Kernels (Namensräume, cgroups, Apparmor, SELinux, Seccomp).
Die auffälligsten Änderungen:
- Das Werkzeug lxd-to-incus, das den Übergang von LXD zu Incus automatisiert, unterstützt nun die LXD-Version 5.19 und ermöglicht die Migration nicht nur einzelner Hosts, sondern auch von LXD-Clustern.
- In virtuellen Maschinen wurde die Unterstützung für die Erstellung von Speichern auf Basis der NVME-Technologie hinzugefügt. Um den Festplattentyp anzugeben, wurde ein neuer Konfigurationsparameter „io.bus“ hinzugefügt, der standardmäßig auf „virtio-scsi“ eingestellt ist. Wenn dieser auf „nvme“ geändert wird, wird das Laufwerk in der virtuellen Maschine als NVME-SSD angezeigt.
- Für Container-Images wurde der Parameter „requirements.privileged“ implementiert, der auf „false“ gesetzt werden kann, um die Verwendung des Images in privilegierten Containern zu verbieten. Diese Einstellung kann beispielsweise für Images mit dem NixOS-Distributionspaket angewendet werden, die derzeit nicht mit privilegierten Containern kompatibel sind.
- Die Implementierung des Split-Level-Copy-Modus wurde von LXD übernommen, Serverder die Kopieroperationen erheblich beschleunigt, da die Datenweiterleitung über den Client ausgeschlossen wird.
- Statisch kompilierte Builds für ARM64-Systeme wurden bereitgestellt.
Quelle: opennet.ru
