img

LXC, LXD и LXCFS – в чем разница?

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

Сложная терминология в некоторых темах, касающихся IT, иногда заводит в тупик. Простой и понятный процесс может быть описан очень комплексным языком, из-за чего, даже после изучения темы, могут остаться вопросы. Это касается и контейнеризации. В рамках этой темы ответим на вопрос - в чем разница между LXC, LXD и LXCFS.

LXC, LXD и LXCFS – в чем разница?

О LXC

LXC (Linux Containers) представляет собой интерфейс в пользовательской среде, функция которого - сдерживать ядро Linux. Имея в активе эффективный API и набор простых инструментов, LXC дает пользователю возможность администрировать любые использующиеся контейнеры.


Важные характеристики

Текущая версия LXC задействует ряд функций ядра, чтобы обеспечить контейнеризацию следующих процессов:

  • namespaces (ipc, uts, mount, pid);
  • профиль AppArmor (та же SELinux);
  • правила Seccomp;
  • Chroots (задействуя pivot _root);
  • потенциал ядра;
  • группы контроля (CGroups).

Как правило, контейнеры LXC обычно воспринимаются пользователями как нечто усредненное между Chroot и VM. Эта технология нацелена на то, чтобы создать среду, аналогичную стандартно установленной Linux, но сделать это без необходимости в дополнительном ядре.


Компоненты

Ниже в списке, несколько актуальных компонентов LXC:

  • liblxc;
  • языковые привязки для AP (Python (2 и 3 ), Lua, Go, Ruby, Haskell);
  • стандартные инструменты администрирования контейнеров;
  • готовые варианты контейнеров;

LXD - решение для LXC

LXD (Linux Container Daemon) является базирующимся на LXC гипервизором контейнеров.

Основные части LXD:

  • системный daemon (lxd);
  • клиент LXC;
  • плагин (nova-compute-lxd);

REST API предоставляется демоном в локальном или сетевом режиме. Эффективная утилита управления, клиент командной строки, отличается своей интуитивностью и простотой. Именно с помощью него реализовано управление каждым контейнером. Клиент обрабатывает подключение одновременно к разному количеству контейнеров, отображает уже созданные и создает новые. Есть возможность их перемещения в процессе функционирования.

Упомянутый плагин “превращает” все LXD-host в вычислительные узлы, которые работают для поддержки контейнеров, а не VM.


Преимущества

Основные преимущества LXD:

  • обеспечение безопасности (контейнеры не обладают привилегированностью, ресурсы ограничиваются и так далее.)
  • любой масштаб использования;
  • интуитивность (простое управление через ввод в командной строке);
  • образ-ориентированность (использование надежных образов, вместо шаблонов);
  • возможность активной миграции;

Связь с LXC

LXD не является новой версией LXC, скорее, он использует ее как базу. Чтобы администрирование контейнеров стало еще проще, LXD задействует LXC, влияя на библиотеку последней. Также во взаимодействии участвует прослойка, написанная на Go. Таким образом, LXD является, по сути, альтернативой LXC с расширенными возможностями (отличный пример - управление через сеть).


LXCFS: настройка контейнеризации

LXCFS - это небольшая архитектура файлов в среде пользователя, которая способна оптимизировать работу ядра Linux.

LXCFS включает в себя:

  • файлы, которые монтируются над оригинальными аналогами и предоставляют CGroup-совместимые значения;
  • дерево cgroupfs, функционирующее в независимости от контейнеров.

Архитектура представляет из себя простой код, созданный в C. Задача, которую необходимо было решить - запуск контейнера systemdпод базовым пользователем с параллельным запуском systemd внутри контейнера, с целью взаимодействовать с cgroups.

Если говорить простым языком, цель создания этой архитектуры - ощущение активного контейнера, как независимой системы.


Так в чем же разница?

Сравнивать LXC, LXD, LXCFS не имеет смысла, так как они не представляют из себя 3 разных продукта с одинаковым функционалом. Грубо можно описать их как программу, дополнение к ней и патч, который позволяет среде пользователя адаптироваться под ее нужды.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии про
img
Docker — популярная платформа виртуализации на уровне ОС. Она поставляет приложения в пакетах (контейнерах), которые, представля
img
Хуки в Git — это bash-скрипты, которые запускаются до или после команд Git, например, коммитов и пушей. Они позволяют автоматизи
img
  Nomad и Kubernetes – это две самые популярные платформы оркестровки, предназначенные для оркестровки динамических рабочих нагр
img
  Давайте узнаем о новом Ops-течении – GitOps! DevOps поспособствовал цифровизации многих компаний. Речь идет о командах разрабо
img
  Канареечное (canary) развёртывание – это метод разработки и развертывания программного обеспечения, который позволяет выпускат
21 ноября
20:00
Бесплатный вебинар
Введение в Docker