Представлен релиз проекта LXD 2.0, в рамках которых развивается надстройка над инструментарием LXC, позволяющая организовать централизованное управление группой серверов для развёртывания изолированных контейнеров. LXD позиционируется Canonical как "гипервизор контейнеров" и состоит из управляющего фонового процесса, принимающего запросы через REST API, клиента для работы в командной строке и плагина для интеграции с OpenStack. LXD основан на технологиях LXC, но заменяет систему шаблонов и предлагает альтернативный инструментарий, не ограниченный текущим хостом и поддерживающий управление по сети.
Версия LXD 2.0 заявлена как первый релиз, готовый к промышленному применению. Выпуск обновлений для ветки LXD 2.0 будет осуществляться до июня 2021 года в соответствии с циклом длительной поддержи, совпадающим Ubuntu 16.04 LTS. Пакеты с LXD 2.0 сформированы для Ubuntu 16.04 и Ubuntu 14.04, для других дистрибутивов сборки будут подготовлены позднее. Код LXD написан на языке Go и использует компоненты liblxc и CRIU. С практическими примерами использования LXD 2.0 можно познакомиться в цикле статей Стефана Грабе, основного разработчика LXC и LXD (Василий Алексеенко выполнил перевод). Для желающих оценить LXD в работе без установки на своей системе подготовлен специальный online-симулятор.
Из возможностей LXD можно отметить поддержку использования различных бэкендов хранилищ (дерево директорий, ZFS, Btrfs, LVM), снапшоты со срезом состояния и live-миграцию работающих контейнеров с одной машины на другую. Ключевым отличием от Docker и rkt является ориентация LXD на запуск в контейнерах полноценного системного окружения, для обновления которого применяются штатные средства запущенной в контейнере системы, а не урезанных специализированных окружений, обновляемых заменой образа.
Вместо используемых в LXC шаблонов построения контейнера в LXD применяются готовые образы контейнеров, кроме того LXD может предоставлять доступ к имеющимся образам, выполняя роль хранилища образов. Плагин к OpenStack позволяет использовать хосты с LXD как вычислительные узлы OpenStack, предлагающие развёртывание легковесных контейнеров вместо полноценных виртуальных машин. Поддерживается создание LXD-контейнеров для инструментария Docker, которые в свою очередь могут создавать вложенные контейнеры, управляемые Docker.
LXD разработан с оглядкой на обеспечение масштабируемости (от управления контейнерами на рабочей машине до построение крупных кластеров контейнеров) и высокого уровня безопасности (упрощает настройку механизмов изоляции, предлагая оптимальный набор параметров по умолчанию и позволяя запускать непривилегированные контейнеры без прав root). Изменения в конфигурацию вносятся утилитой lxc без ручной правки файлов, допускается каскадное подключение профилей с настройками. Несколько серверов могут быть объединены в единое пространство для запуска контейнеров с аутентификацией на базе сертификатов.
|