Comments 17
Спасибо за статью. Уже некоторое время собираюсь попробовать LXD, в связи с чем есть пара вопросов:

Вот эта ситуация с df внутри контейнера никак не лечится? Чтобы было видно сколько занято из его ограничения по месту. По примеру выше — 1GB из 2GB места.

Какие есть актуальные веб-интерфейсы для управления парой-тройкой инстансов LXD?

Есть ли возможность делать сеть не NAT, а обычными бриджами? Т.е. взять одну физическую сетевую карту хостовой машины и пошарить её в виртуалки с статическими\динамическими адресами.
Как дела с броадкаст и мультикаст трафиком в\из контейнеров?

Сейчас использую OpenVZ (десятка полтора небольших контейнеров с CentOS и Ubuntu под разные задачи), всё нравится, но боюсь что он потерял актуальность.

1) С df готового ответа у меня пока нет.
2) Из актуальных web-интерфейсов можно попробовать LxdMosaic
3) Сам не пробовал, но судя по опции bridge.external_interfaces такое возможно. См. документацию здесь
4) Затрудняюсь ответить :)

Зря что? Использую или рассматриваю переезд с него в другие контейнеры?
В Proxmox это решено созданием LVM thin pool для контейнеров. То есть создаётся pool, оттуда нарезаются блочные устройства, которые указываются как raw-файлы для отдельных контейнеров.
Кстати, там же есть встроенное решение для миграции бэкапов контейнеров, сделанных в vzdump, на LXC.
Лучше использовать zfs на proxmox для контейнеров.
Можно ставить квоты на размер дисков контейнера, при этом реально не используемое место не будет расходоваться впустую. Также доступны все фичи zfs типа проверки контрольных сумм файлов, сжатие, дедубликация. И администрировать это дело удобнее, кмк.
LXD не использовал, но активно работаю с LXC. Дак вот:
1. df по идее должно лечится использованием дисковых квот на ФС, но не пробовал. Для меня гораздо удобнее нарезать LVM под контейнера — каждому свой. Тогда никаких разночтений не возникает.
2. LXC отлично работает с бриджами и любыми их конфигурациями. Можно и разные мосты настроить и физический интерфейс прокинуть и тп. А где надо и пронатить. Это всё на совести ядра, не важно с контейнерами или без.
3. Интерфейс — можно посмотреть в сторону Proxmox.

Всем добрый день. Может будет глупый вопрос, а разница между LXD, LXC и Doker, Kubernetes.

Если кратко, то:


  • LXC — Это первое поколение реализации проекта "Линукс-контейнеры" на базе возможностей ядра Linux. Как я понимаю, сам не трогал этого динозавра, это просто локальная программа написанная на си, простой клиент создающий контейнеры.
  • LXD — Это второе поколение реализации проекта "Линукс-контейнеры". Здесь уже реализована другая модель: клиент-серверная + эксплуатация полноценных виртуальных машин на базе QEMU, работает как "база" для QEMU.
  • Docker — это форкнутный LXC (использовались его библиотеки) который развивался, развивался и развился в самостоятельный проект который переписали с нуля (могу ошибаться) и ужались они до концепции изоляции 1 контейнер = 1 приложение, тогда как LXD это изоляция не приложения, а целой ОС в которой стартует свой init, со своим состоянием и т.д. Хотя, мне подсказали, что при умелых руках можно Docker превратить в LXD (без QEMU), но сам не пробовал.
  • Kubernetes — Не пробовал, не могу ничего сказать.

Спасибо большое за разъяснения. :)
Возникает следующий вопрос?
Когда лучше использовать Docker, а когда LXD? Для каких задач лучше Docker, а когда LXD?

Если вы здаете такой вопрос, видимо вы в начале контейнерновго пути, хотите попробовать. Я бы сказал тут однозначно Докер. Просто готовая и экосистема с кучей контейноров и ответов на все ваши вопросы.

Kubernetes — это проект, который расширяет возможности Docker (и не только) и управляет контейнерами на большом количестве хостов: развертывание, расход\ограничение ресурсов, балансировка нагрузки и следит за отказоустойчивостью приложений (автоматически создает реплики, масштабирует и пр. ) и еще кучу всего.

Еще есть слой выше, например Rancher — позволяет управлять кластером\ами Kubernetes, например, добавлять или удалять ноды в автоматическом режиме (если очень грубо). (У VMware тоже есть такой продукт, но вспомнить название не могу, сейчас похоже это Project Pacific из линейки Tanzu).
Спасибо. Во введении к статье это тоже смотрелось бы вполне уместно.
По философии еще есть различия у LXC/LXD это операционная система в контейнере.
А у Docker/Kubernetes это приложение в контейнере.
Спасибо за статью. Вот прям очень не хватает информации по LXD.

Но у меня, в связи с вашей статьей, появился зудящий вопрос. Можно ли каким то образом перенести контейнер из одного storage в другой?
Ох. Прошу прощения за глупый вопрос.
Я так понимаю начиная с версии 3.21 опция --storage доступна в виде флага для команды copy.
Я по незнанию и скудоумию пытался выполнить сие действие на версии 3.0

Да, можно, экспортировать через lxc export и импортировать lxc import --storage= с указанием нужного стораджа

Only those users with full accounts are able to leave comments. Log in, please.