Выпуск инструментария управления контейнерами LXC и LXD 4.0
5 апреля 2020 года
Компания Canonical опубликовала релиз инструментария для организации работы изолированных контейнеров LXC 4.0, менеджера контейнеров LXD 4.0 и виртуальной ФС LXCFS 4.0 для симуляции в контейнерах /proc, /sys и виртуализированного представления cgroupfs для дистрибутивов без поддержи пространств имён для cgroup. Ветка 4.0 отнесена к выпускам с длительной поддержкой, обновления для которых формируются в течение 5 лет
LXC представляет собой runtime для запуска как системных контейнеров, так и контейнеров для отдельных приложений (OCI). В состав LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор биндингов для различных языков программирования. Изоляция осуществляется при помощи штатных механизмов ядра Linux. Для изоляции процессов, сетевого стека ipc, uts, идентификаторов пользователей и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсов применяются cgroups. Для понижения привилегий и ограничения доступа задействованы такие возможности ядра, как профили Apparmor и SELinux, политики Seccomp, Chroots (pivot_root) и capabilities. Код LXC написан на языке Си и распространяется под лицензией GPLv2.
LXD представляет собой надстройку над LXC, CRIU и QEMU, применяемую для централизованного управления контейнерами и виртуальными машинами на одном или нескольких серверах. Если LXC является низкоуровневым инструментарием для манипуляции на уровне отдельных контейнеров, то LXD реализован в виде фонового процесса, принимающего запросы по сети через REST API и позволяющего создавать масштабируемые конфигурации, развёрнутые на кластере из нескольких серверов. Поддерживаются различные бэкенды хранилищ (дерево директорий, ZFS, Btrfs, LVM), снапшоты со срезом состояния, live-миграция работающих контейнеров с одной машины на другую и средства для организации хранилища образов. Код LXD написан на языке Go и распространяется под лицензией Apache 2.0.
Ключевые улучшения в LXC 4.0:
- Полностью переписан драйвер для работы с cgroup. Добавлена поддержка унифицированной иерархии cgroup (cgroup2). Добавлена функциональность контроллера freezer, при помощи которого можно остановить работу в cgroup и временно высвободить некоторые ресурсы (CPU, ввод/вывод и потенциально даже память) для выполнения других задач;
- Реализована инфраструктура для перехвата системных вызовов;
- Добавлена поддержка подсистемы ядра "pidfd", предназначенной для обработки ситуации с повторным использованием PID (pidfd связывается с конкретным процессом и не меняется, в том время как PID может быть привязан к другому процессу после завершения текущего процесса, ассоциированного с этим PID);
- Улучшено создание и удаление сетевых устройств, а также их перемещения между пространствами имён сетевой подсистемы;
- Реализована возможность перемещения беспроводных сетевых устройств (nl80211) в контейнеры.
Ключевые улучшения в LXD 4.0:
- Добавлена поддержка запуска не только контейнеров, но и виртуальных машин;
- Для сегментирования серверов LXD предложена концепция проектов, упрощающих управление группами контейнеров и виртуальных машин. Каждый проект может включать свой набор контейнеров, виртуальных машин, образов, профилей и разделов хранения. В привязке к проектам можно задавать свои ограничения и менять настройки;
- Добавлена поддержка перехвата системных вызовов для контейнеров;
- Реализовано создание резервных копий окружений и восстановление из них;
- Обеспечено автоматизированное создание снапшотов окружений и разделов хранилищ с возможностью задания времени существования снапшота;
- Добавлен API для мониторинга за состоянием сети (lxc network info);
- Добавлена поддержка
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.