Uvolnění nástrojů pro správu kontejnerů LXC 6.0, Incus 6.0 a LXD 5.21.1

Komunita Linux Containers zveřejnila vydání nástroje pro organizaci práce izolovaných kontejnerů LXC 6.0, který poskytuje runtime vhodný jak pro spuštění kontejnerů s plným systémovým prostředím blízkým virtuálním strojům, tak pro spuštění neprivilegovaných kontejnerů jednotlivých aplikací (OCI). LXC patří mezi nízkoúrovňové nástroje, které fungují na úrovni jednotlivých kontejnerů. Pro centralizované řízení kontejnerů nasazených v clusteru několika serverů se na bázi LXC vyvíjejí systémy Incus a LXD. Větev LXC 6.0 je klasifikována jako vydání s dlouhodobou podporou, aktualizace pro něž budou poskytovány po dobu 5 let (do roku 2029). Kód LXC je napsán v jazyce C a je šířen pod licencí GPLv2.

LXC zahrnuje knihovnu liblxc, sadu utilit (lxc-create, lxc-start, lxc-stop, lxc-ls atd.), šablony pro vytváření kontejnerů a sadu bindingů pro různé programovací jazyky. Izolace je prováděna pomocí standardních mechanismů jádra Linux. Pro izolaci procesů, síťového stacku ipc, uts, identifikátorů uživatelů a montovacích bodů se používá mechanismus jmenných prostorů (namespaces). Pro omezení zdrojů se používají cgroups. Pro snížení privilegií a omezení přístupu byly využity možnosti jádra, jako jsou profily Apparmor a SELinux, politiky Seccomp, Chroots (pivot_root) a capabilities.

Hlavní změny:

  • Byla poskytnuta možnost sestavení univerzálního spustitelného souboru lxc, který kombinuje všechny příkazy dříve distribuované jako samostatné nástroje „lxc-*“ do jedné utility. Pro sestavení souhrnného spustitelného souboru byla navržena možnost „tools-multicall=true“, při jejímž aktivaci se všechny staré samostatné nástroje vytvářejí jako symbolické odkazy na utilitu lxc. Sestavení ve formě jednoho spustitelného souboru značně snižuje spotřebu diskového prostoru, což je aktuální pro vestavěné systémy.
  • Do knihovny liblxc byla přidána funkce set_timeout, která umožňuje nastavit timeout pro jakékoli operace interakce s LXC monitorem.
  • V rozhraní síťových mostů lxcbr0 je ve výchozím nastavení aktivována podpora IPv6 s přiřazením adres z podsítě IPv6 ULA (Unique Local Address).
  • Do utility lxc-usernsexec byly přidány možnosti „-u“ a „-g“ pro změnu uživatelských a skupinových identifikátorů (UID a GID).
  • V utilitě lxc-checkconfig je zajištěno zobrazení verze pouze při přítomnosti příkazu lxc-start a bylo přidáno informování o maximálním povoleném počtu každého typu jmenného prostoru.
  • Byla přidána podpora obrazů kontejnerů ve formátu OCI, ve kterých se pro kompresi informací používá FS Squashfs.
  • Pro interakci se systemd přes D-Bus byla použita samostatná knihovna libdbus-1 namísto libsystemd.
  • Byla ukončena podpora systému inicializace Upstart.

Byla zároveň vydána verze 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ářů, jenž kdysi LXD vytvořil. Kód Incus je napsán v jazyce Go a je distribuován pod licencí Apache 2.0. Incus 6.0 je první verze, která je označena jako stabilní větev, pro kterou bude zajištěn dlouhý cyklus aktualizací (LTS). Mezi změnami v Incus 6.0 se vyznačuje možnost vytváření síťových rozhraní prostřednictvím API bridge.external_interfaces, vylepšení podpory autentizace prostřednictvím JWT (JSON Web Token), podpora USB a zobrazení podrobných systémových informací v příkazu "incus info —resources", podpora verze LXD 5.21 v utilitě lxd-to-incus.

Incus a LXD poskytují prostředky pro centralizovanou správu kontejnerů a virtuálních strojů, které jsou nasazeny jak na jednom hostiteli, tak v clusteru několika servery. Projekt je implementován jako proces na pozadí, který přijímá požadavky přes síť prostřednictvím REST API a podporuje různé backendy úložišť (strom adresářů, ZFS, Btrfs, LVM), snapshoty se zachycením stavu, živou migraci běžících kontejnerů z jednoho stroje na druhý a prostředky pro ukládání obrazů kontejnerů. Jako runtime pro spuštění kontejnerů se používá nástroj LXC. Izolace je realizována pomocí standardních mechanizmů jádra Linux (jmenné prostory, cgroups, Apparmor, SELinux, Seccomp).

Komunita Linux Containers dohlížela na vývoj LXD, dokud se společnost Canonical rozhodla transformovat LXD na podnikový projekt. Cílem forku je poskytnout spravovanou alternativu projektu LXD, který je pod kontrolou společnosti Canonical, nezávislou na komunitě. Vytvoření Incus také umožnilo odstranit některé koncepční chyby, které byly při vývoji LXD učiněny a které by jinak nebylo možné opravit bez narušení zpětné kompatibility.

Společnost Canonical vydala novou verzi systému správy kontejnerů LXD 5.21.1. Větev LXD 5.21 je označena jako LTS a bude podporována do června 2029. Kód přidaný do LXD zaměstnanci Canonical je dodáván pod licencí AGPLv3, zatímco kód od externích přispěvatelů, na který Canonical nemá vlastnická práva, zůstává pod licencí Apache 2.0. Z funkčních změn v LXD 5.21.1 lze zmínit přechod snap balíčku LXD na větve LXC 6.0 a LXCFS 6.0. Do API bylo přidáno rozšíření storage_volumes_all a s ním související zpracovatel /1.0/storage_volumes pro výstup seznamu se všemi oddíly úložiště. Bylo přidáno rozšíření instances_files_modify_permissions pro měnění přístupových práv k existujícím souborům prostřednictvím API.

Bylo vydáno virtuální FS LXCFS 6.0, používané k simulaci v kontejnerech pseudo-FS /proc a /sys, stejně jako k virtualizovanému zobrazení cgroupfs pro distribuce bez podpory prostorů jmen cgroup. V nové verzi byla přidána možnost "--enable-cgroup", která umožňuje řídit zapnutí integrované funkce pro vytváření virtuálního stromu cgroupfs pro kontejnery s použitím cgroupv1 (v současnosti většina distribucí podporuje jádrem poskytované prostory jmen pro cgroup, takže zapnutí integrované alternativní implementace ztratilo smysl a nyní je volitelné). Dále se v LXCFS 6.0 přestala filtrovat CPU při vytváření souboru /sys/devices/system/cpu v závislosti na stavu online/offline.

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