LXD — это гипервизор для запуска контейнеров Linux, имеет API-интерфейс ReST для управления этими контейнерами LXC (Linux Containers). И настройка LXD гораздо легче, чем кажется.
Он позволяет запускать контейнеры и управлять соответствующими ресурсами, такими как системой хранения данных и сетью.
В этом руководстве будет показано, как установить и настроить LXD на Ubuntu 16.04 (Xenial Xerus), а также как запустить установленный контейнер и получить к нему доступ.
Требования
Для настройка LXD нам потребуется установленный Ubuntu 16.04 с доступом в Интернет. Это может быть как физическая, так и виртуальная машина.
2. Установка LXD
Если вы используете сервер Ubuntu 16.04, то LXD уже предустановлен в вашей системе.
При установке Ubuntu 16.04 на Desktop, LXD необходимо установить вручную. Откройте терминал и запустите следующие команды:
После этого напишите:
Добавляем пользователя в группу LXD
Чтобы пользователь получил локальный доступ к демону LXD, он должен быть частью группы LXD.
Для этого выполните команду:
Где <USER> — ваше имя пользователя.
Доступ нового пользователя к группе будет возможен только при следующем сеансе входа в систему. Чтобы доступ был открыт уже в текущем сеансе, запустите:
Установка инструментов ZFS
Теперь мы создадим LXD, используя бэкэнд системы хранения данных на ZFS.
Файловая система ZFS предоставляет функции копирования при записи записей (копирование на ходу) и позволяет использовать расширенные функции LXD, такие как: квоты для каждого контейнера, мгновенные снимки/восстановление, оптимизированную миграцию (отправку/получение) и создание моментального образа с контейнера.
Чтобы установить инструменты ZFS, просто выполните команду:
3. Настройка LXD
Теперь мы можем приступить к настройке демона LXD.
Для этого запустите команду:
Вы увидите ряд вопросов о том, как настроить демон (для большинства из них можно будет спокойно нажать на клавишу Enter ). Также у вас будет возможность выбрать размер контейнера в пуле ZFS на основе объема доступного дискового пространства.
В рамках настройки LXD init можно также настроить сетевые соединения для доступа к контейнерам.
Итак, давайте выберем «Yes» как ответ на первый вопрос, чтобы создать сетевой мост:
Выберем имя по умолчанию для сетевого моста lxdbr0:
Давайте настроим сеть IPv4 для моста, выбрав «Yes»:
Для настройки IPv4 вам надо будет ответить еще на несколько вопросов, в частности:
- ip адрес;
- маска подсети;
- начальный/конечный адрес для DHCP сервера;
- максимальное количество клиентов DHCP сервера;
Мы также можем ответить по умолчанию на эти вопросы.
Наконец, ответьте «Yes» на вопрос о NAT для сети:
Аналогичная конфигурация доступна для сетей IPv6, но мы её проигнорируем, так как нам не нужно IPv6.
Готово! LXD теперь настроен и готов к использованию.
4. Запустим контейнер
Пришло время начать использовать наш LXD.
Во-первых, давайте удостоверимся, что клиент может подключиться к демону, выполнив команду:
Результат должен быть аналогичен:
Давайте теперь запустим наш первый контейнер:
Результат будет примерно таким:
Это загрузит официальный образ Ubuntu 16.04 LTS (Xenial Xerus) и запустит вместе с ним контейнер.
Если имя контейнера не указано, будет генерироваться случайный.
Давайте проверим, что наш контейнер действительно работает с LXC-списком:
Мы можем выполнять команды внутри контейнера с помощью lxc exec:
Он выполнит команду от root в контейнере:
Доступ оболочки к контейнеру можно получить с помощью lxc exec mix-beagle /bin/bash
Обратите внимание, что поскольку мы также настраиваем сеть, контейнер имеет адрес IPv4 (как показано в списке lxc), а также может быть достигнут через ssh с хоста. Однако это требует предварительного импорта ключа ssh в контейнер.
Как только контейнер больше не нужен, его можно остановить:
И теперь его можно удалить:
5. Итоги
Теперь ваша машина настроена для запуска контейнеров LXD.
LXD предоставляет множество дополнительных функций и обеспечивает большую гибкость при настройке контейнеров, ограничении ресурсов контейнера и т.д.
Если вы хотите узнать больше о LXD и его расширенном использовании, ознакомьтесь со следующими ресурсами:
Вопросы по статье задавайте в комментариях ниже.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.