Представен е третият брой на проекта Incus, в рамките на който обществото на Linux Containers развива форк на системата за управление на контейнери LXD, създадена от старата разработваща команда, която някога направи LXD. Кодът на Incus е написан на Go и се разпространява под лицензия Apache 2.0.
Припомняме, че обществото на Linux Containers ръководеше разработката на LXD, преди компанията Canonical да реши да развива LXD отделно като корпоративен проект. Целта на форка е да предостави управлявана от независимото общество алтернатива на проекта LXD, контролирана от компанията Canonical. В рамките на проекта Incus също така се планира да се отстранят някои концептуални грешки, допуснати при разработката на LXD, които по-рано не можеха да бъдат коригирани без нарушаване на обратно съвместимост.
Incus предоставя средства за централизирано управление на контейнери и виртуални машини, разгръщани както на единичен хост, така и в клъстер от няколко. сървъри. Проектът е реализиран като фонов процес, който приема заявки по мрежата чрез REST API и поддържа различни бекенди за хранилище (дереве от директории, ZFS, Btrfs, LVM), моментни снимки на състоянието, live миграция на работещи контейнери от една машина на друга и средства за съхранение на образи на контейнери. Като runtime за стартиране на контейнерите се използва инструментариумът LXC, който включва библиотеката liblxc, набор от утилити (lxc-create, lxc-start, lxc-stop, lxc-ls и т.н.), шаблони за изграждане на контейнери и набор от привязки за различни езици за програмиране. Изолацията се осъществява чрез стандартните механизми на ядрото на Linux (имена пространства, cgroups, Apparmor, SELinux, Seccomp).
Най-забележителните промени:
- Добавена е поддръжка на управлението на авторизацията на потребителите на базата на модела Relationship-Based Access Control, реализиран чрез фонов процес OpenFGA, отговарящ за вземането на решения относно предоставянето на потребителите на определени права. В комбинация с доставчика OpenID Connect, поддръжката на OpenFGA позволява формирането на отворен стек за идентификация и авторизация, позволяващ използването на Incus като пълна замяна на конфигурациите на LXD с Canonical RBAC. За настройка на достъпа до OpenFGA са предложени параметрите openfga.api.token, openfga.api.url, openfga.store.id и openfga.store.model_id.
- Подобрена утилита lxd-to-incus, която автоматизира миграцията от LXD към Incus. В новата версия е добавена поддръжка за дистрибуции с инициализационна система OpenRC, реализирана е възможността за прехвърляне на Ceph хранилища и OVN мрежи, осигурено е водене на лог на миграцията и създаване на резервни копия.
- В виртуални машини Добавена е поддръжка за горещо свързване и горещо премахване (hot-plug/hot-remove) на файлови пътища или отделни дялове, пробити от хост средата. Преди това подобен пробив с помощта на драйвера virtio-fs или ФС 9p изискваше спиране на виртуалната машина. За заобикаляне на това ограничение е използвана възможността на QEMU за горещо свързване на PCI устройства и монтиране на пътища вътре в гостуващата система посредством incus-agent.
Източник: opennet.ru
