První vydání Incus, fork systému pro správu kontejnerů LXD

Bylo představeno první vydání projektu Incus, v rámci kterého komunita Linux Containers vyvíjí fork systému pro správu kontejnerů LXD, vytvořený starým týmem vývojářů, který kdysi vytvořil LXD. Kód Incus je napsán v jazyce Go a je distribuován pod licencí Apache 2.0.

Připomínáme, že komunita Linux Containers dohlížela na vývoj LXD, než se společnost Canonical rozhodla rozvíjet LXD samostatně jako podnikový projekt. Cílem forku je poskytnout řízenou nezávislou alternativu projektu LXD, pod kontrolou společnosti Canonical. V rámci projektu Incus se také plánuje odstranit některé konceptuální chyby, které byly dříve neopravené bez narušení zpětné kompatibility.

Incus poskytuje prostředky pro centralizovanou správu kontejnerů a virtuálních strojů, nasazených jak na jednom hostiteli, tak v clusteru složeném z několika strojů. serveryProjekt je realizován jako služba na pozadí, přijímající dotazy přes síť prostřednictvím REST API a podporující různé backendy úložišť (strom adresářů, ZFS, Btrfs, LVM), snapshoty stavu, live migraci běžících kontejnerů z jednoho stroje na druhý a prostředky pro uchovávání obrazů kontejnerů. K jako runtime pro spuštění kontejnerů se používá nástroj LXC, který zahrnuje knihovnu liblxc, sadu utilit (lxc-create, lxc-start, lxc-stop, lxc-ls atd.), šablony pro vytváření kontejnerů a sadu vazeb pro různé programovací jazyky. Izolace je zabezpečena pomocí vestavěných mechanismů jádra Linux (jmenné prostory, cgroups, Apparmor, SELinux, Seccomp).

Co do funkčnosti první vydání Incus odpovídá nedávno vydané aktualizaci LXD 5.18 a je zaměřeno především na přejmenování a reorganizaci kódu, stejně jako na odstranění zastaralých funkcí. Nová verze však přináší také specifické změny v rozhraní příkazového řádku a API, které nebylo možné zahrnout do LXD kvůli požadavkům na zajištění zpětné kompatibility. Vývojáři plánují v budoucnu přenášet z kódové základny LXD užitečná vylepšení a opravy, přičemž přidají také vlastní originální novinky, které mohou být, pokud si to společnost Canonical přeje, portovány do LXD.

Nejvýznamnější změny:

  • Byl proveden přechod na vestavěný SQL engine Cowsql – fork Dqlite, vytvořený původním autorem Dqlite ze stejných důvodů jako Incus (odstranění vlivu Canonical). Cowsql je kompatibilní se SQLite, podporuje replikaci dat, automatické obnovení po selhání a zajištění odolnosti proti poruchám díky rozložení zpracovatelů na několik uzlů.
  • Do rozhraní příkazového řádku byla přidána příkaz „incus snapshot“ pro správu snapshotů (nahrazuje jednotlivé příkazy lxc snapshot a restore). Pomocí „incus snapshot“ lze spouštět operace vytváření, odstraňování, zobrazování seznamu, přejmenovávání a obnovení snapshotu.
  • Byla změněna logika zpracování příkazů „incus config trust add“ a „incus cluster add“, které nyní přijímají jeden argument s názvem a vracejí správný token. Operace práce se certifikátem prostřednictvím příkazu „incus config trust add“ byly přesunuty do samostatného příkazu „incus config trust add-certificate“.
  • Byl přidán příkaz „incus admin“, který zbavil administrátora potřeby přímého přístupu k příkazům lxc a lxd. K dispozici jsou následující podpříkazy:
    • incus admin cluster
    • incus admin init
    • incus admin recover
    • incus admin shutdown
    • incus admin waitready
  • Byly odstraněny zastaralé body přístupu k API /1.0/containers a /1.0/virtual-machines, které byly nahrazeny /1.0/instances.
  • Zařízení /dev/lxd bylo nahrazeno /dev/incus, zmínky v kódu lxd byly nahrazeny incus.
  • Typ konfigurace serveru bylo změněno z „map[string]any“ na „map[string]string“. Byla opuštěna zastaralá metoda autentizace core.trust_password (na její místo přišla autentizace založená na tokenech), což bránilo použití typu „map[string]string“.
  • Z API byly odstraněny zastaralé funkce *Container, které byly nahrazeny funkcemi *Instance zaměřenými na správu virtuálních strojů (například místo CreateContainer je třeba používat CreateInstance).
  • Byl přidán nástroj lxd-to-incus pro migraci z LXD na Incus (podporuje automatickou konverzi konfiguračních souborů od verze LXD 4.0 do 5.18). Migrace clusterů zatím není podporována.
  • Jako minimální podporovaná verze jazyka Go byla prohlášena verze 1.20.
  • Byla ukončena podpora některých funkcí závislých na Ubuntu nebo zastaralém či nepodporovaném softwaru:
    • Byla odstraněna podpora Ubuntu Fan (bridge.mode, fan.overlay_subnet, fan.underlay_subnet, fan.type), která byla závislá na jádrových pachech používaných pouze v Ubuntu.
    • Byla odstraněna podpora shiftfs, která byla vázána na balíčky jader pro Ubuntu virtuální FS pro mapování bodů připojení na prostory identifikátorů uživatelů (user namespace).
    • Byla odstraněna podpora autentizačního systému Candid, specifického pro produkty Canonical.
    • Byla odstraněna podpora proprietární implementace mechanismu autentizace RBAC (Role Based Access Control), vytvořeného Canonical na základě Macaroons a Candid.
    • Byly odstraněny komponenty pro integraci s MAAS (Metal-as-a-Service), nástrojem pro rychlé nasazení konfigurací Ubuntu.
    • Byla odstraněna koncepce přístupu na server pomocí důvěryhodného hesla (core.trust_password).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster