De derde uitgave van het Incus-project is gepresenteerd, waarin de Linux Containers-gemeenschap een fork van het LXD-containerbeheersysteem ontwikkelt, gemaakt door het oude team van ontwikkelaars dat ooit LXD heeft gemaakt. De code van Incus is geschreven in Go en wordt verspreid onder de Apache 2.0-licentie.
Ter herinnering, de Linux Containers gemeenschap heeft de ontwikkeling van LXD begeleid totdat Canonical besloot om LXD afzonderlijk te ontwikkelen als een bedrijfsproject. Het doel van de fork is het aanbieden van een beheerde, door een onafhankelijke gemeenschap gecontroleerde alternatieve oplossing voor het Canonical-ondersteunde project LXD. In het kader van het Incus-project is het ook de bedoeling om enkele conceptuele fouten te corrigeren die eerder niet konden worden rechtgezet zonder de achterwaartse compatibiliteit te schaden.
Incus biedt middelen voor gecentraliseerd beheer van containers en virtuele machines, zowel op één host als in een cluster van meerdere. serversHet project is gerealiseerd als een achtergrondproces dat netwerkverzoeken accepteert via een REST API en verschillende opslagbackends ondersteunt (directoryboom, ZFS, Btrfs, LVM), snapshots met statusopnames, live-migratie van actieve containers van de ene machine naar de andere en middelen voor het opslaan van container afbeeldingen. Voor het uitvoeren van containers wordt de LXC-toolset gebruikt, die de liblxc-bibliotheek, een set hulpprogramma's (lxc-create, lxc-start, lxc-stop, lxc-ls, enz.), sjablonen voor het bouwen van containers en een set bindings voor verschillende programmeertalen bevat. Isolatie wordt gerealiseerd met behulp van de standaardmechanismen van de Linux-kernel (naamruimten, cgroups, Apparmor, SELinux, Seccomp).
De meest opvallende wijzigingen:
- Ondersteuning voor het beheer van gebruikersautorisatie is toegevoegd op basis van het Relationship-Based Access Control-model, geïmplementeerd door middel van een achtergrondproces OpenFGA, dat verantwoordelijk is voor het nemen van beslissingen over het toekennen van bepaalde bevoegdheden aan gebruikers. In combinatie met de OpenID Connect-provider maakt OpenFGA een open stack voor identificatie en autorisatie mogelijk, waardoor Incus kan fungeren als een volledige vervanging voor LXD-configuraties met Canonical RBAC. Voor het configureren van toegang tot OpenFGA zijn de parameters openfga.api.token, openfga.api.url, openfga.store.id en openfga.store.model_id aangeboden.
- De lxd-to-incus-tool is verbeterd, waardoor de migratie van LXD naar Incus wordt geautomatiseerd. In de nieuwe versie is ondersteuning voor distributies met het OpenRC-init-systeem toegevoegd, en is het mogelijk gemaakt om Ceph-opslag en OVN-netwerken over te zetten, met logging van de migratie en het maken van back-ups.
- In virtuele machines Ondersteuning voor hot-plug/hot-remove van bestandslocaties of afzonderlijke partities, doorgegeven vanuit de hostomgeving, is toegevoegd. Eerder vereiste dergelijke doorvoer met behulp van de virtio-fs-driver of FS 9p het stoppen van de virtuele machine. Om deze beperking te omzeilen, is de mogelijkheid van QEMU voor het hot-pluggen van PCI-apparaten en het mounten van paden binnen het gastensysteem via incus-agent ingezet.
Bron: opennet.ru
