Zaprezentowano trzecią edycję projektu Incus, w ramach którego społeczność Linux Containers to rozwinięcie systemu zarządzania kontenerami LXD, stworzonego przez zespół programistów, którzy stworzyli LXD. Containers jest napisany w języku Go i licencjonowany na podstawie licencji Apache 2.0.
Przypomnijmy, że społeczność Linux Firma Containers nadzorowała rozwój LXD, zanim Canonical zdecydował się rozwijać LXD oddzielnie, jako projekt korporacyjny. Celem forka jest stworzenie niezależnej, opartej na społeczności alternatywy dla kontrolowanego przez Canonical projektu LXD. Projekt Incus planuje również usunięcie niektórych błędów koncepcyjnych popełnionych podczas rozwoju LXD, których wcześniej nie dało się naprawić bez naruszenia wstecznej kompatybilności.
Incus dostarcza narzędzia do scentralizowanego zarządzania kontenerami i maszynami wirtualnymi wdrożonymi zarówno na pojedynczym hoście, jak i w klastrze składającym się z kilku hostów. serweryProjekt jest realizowany jako proces w tle, który odbiera żądania sieciowe za pośrednictwem interfejsu REST API i obsługuje różne zaplecza pamięci masowej (drzewo katalogów, ZFS, Btrfs, LVM), migawki z wycinkami stanu, migrację na żywo działających kontenerów z jednej maszyny na drugą oraz narzędzia do przechowywania obrazów kontenerów. Zestaw narzędzi LXC służy jako środowisko wykonawcze do uruchamiania kontenerów, które obejmuje bibliotekę liblxc, zestaw narzędzi (lxc-create, lxc-start, lxc-stop, lxc-ls itp.), szablony do budowania kontenerów oraz zestaw powiązań dla różnych języków programowania. Izolację osiągnięto za pomocą standardowych mechanizmów jądra. Linux (przestrzenie nazw, grupy c, Apparmor, SELinux, Seccomp).
Najważniejsze zmiany:
- Dodano obsługę zarządzania autoryzacją użytkowników opartą na modelu Relationship-Based Access Control, zaimplementowaną przy użyciu procesu tła OpenFGA odpowiedzialnego za podejmowanie decyzji o przyznaniu użytkownikom określonych uprawnień. W połączeniu z dostawcą OpenID Connect, obsługa OpenFGA umożliwia utworzenie otwartego stosu uwierzytelniania i autoryzacji, umożliwiając używanie Incus jako kompletnego zamiennika konfiguracji LXD z Canonical RBAC. Następujące parametry są proponowane do konfiguracji dostępu do OpenFGA: openfga.api.token, openfga.api.url, openfga.store.id i openfga.store.model_id.
- Ulepszone narzędzie lxd-to-incus, automatyzujące migrację z LXD do Incus. Nowa wersja dodaje obsługę dystrybucji z systemem inicjalizacji OpenRC, implementuje możliwość migracji magazynów Ceph i sieci OVN, zapewnia rejestrowanie migracji i tworzy kopie zapasowe.
- В maszyny wirtualne Dodano obsługę podłączania i usuwania ścieżek plików lub poszczególnych partycji mapowanych ze środowiska hosta w trybie hot-plug. Wcześniej takie mapowanie za pomocą sterownika virtio-fs lub systemu FS 9p wymagało zatrzymania maszyny wirtualnej. Aby obejść to ograniczenie, wykorzystano funkcję podłączania urządzeń PCI w trybie hot-plug w QEMU oraz montowania ścieżki w systemie gościa za pośrednictwem incus-agent.
Źródło: opennet.ru
