Будет исполнено, господин Admiral - Академия Selectel

Будет исполнено, господин Admiral

Николай Рубанов Николай Рубанов Старший технический писатель 22 ноября 2018

Мы все любим Docker за его гибкость и удобство. Однако постоянная работа в консоли иногда не совсем то, что действительно хотят видеть инженеры DevOps. Сегодня мы расскажем про одно очень интересное решение для управления контейнерами. На палубе появляется VMware Admiral. Установка Когда проблема автоматизации развертывания и поддержания жизненного цикла контейнеров возникла перед разработчиками VMware, они […]

Изображение записи

Мы все любим Docker за его гибкость и удобство. Однако постоянная работа в консоли иногда не совсем то, что действительно хотят видеть инженеры DevOps. Сегодня мы расскажем про одно очень интересное решение для управления контейнерами. На палубе появляется VMware Admiral.

Установка

Когда проблема автоматизации развертывания и поддержания жизненного цикла контейнеров возникла перед разработчиками VMware, они решили создать продукт, полностью решающий эти задачи. Изначально он предназначался для управления только контейнерами в составе платформы VMware vSphere®, однако, получил поддержку управления Docker-контейнерами и был выделен в отдельный программный продукт.

VMware Admiral был выпущен под свободной лицензией, а исходный код выложен на GitHub. Это позволяет без лишних ограничений использовать этот прекрасный инструмент, а также модифицировать его под свои нужды. Установить его на сервер можно тремя разными способами. Не забудьте, что Docker уже должен быть установлен.

Как контейнер Docker

Подобно другим схожим инструментам, VMware Admiral доступен в качестве контейнера в Docker Hub и может быть развернут одной командой в Docker версий 1.11.x и 1.12.x:

docker run -d -p 8282:8282 --name admiral vmware/admiral

После того, как образ будет скачан и запущен, станет доступен веб-интерфейс по следующему адресу:

http://SERVER_IP_ADDRESS:8282

Скомпилированное приложение

Достаточно простым способом можно развернуть заранее скомпилированное Java-приложение. Скачиваем его по ссылке и запускаем одной простой командой:

java -jar admiral-host-*-uber-jar-with-agent.jar --bindAddress=0.0.0.0 --port=8282

Как и в первом случае, VMware Admiral станет доступен посредством веб-интерфейса.

Самостоятельная компиляция

Также имеется возможность клонировать репозиторий локально и собрать все из исходников самостоятельно. Для этого следует воспользоваться соответствующей инструкцией.

Использование

Хосты с Docker

Самым популярным способом установки приложений в Docker является ресурс DockerHub. В репозиториях ресурса расположены тысячи вариантов серверных приложений, доступных для развертывания. VMware Admiral сделал эту операцию удобнее — для того чтобы развернуть любое приложение, достаточно один раз щелкнуть мышью.

Общедоступные репозитории

Основным преимуществом VMware Admiral является возможность развертывания нужных приложений сразу на множество серверов с Docker на борту. Для этого нужно пройти два этапа:

  1. На хостах открыть доступ к REST API
  2. Добавить хосты в Admiral

Рассмотрим каждый из этапов подробнее. На удаленных хостах выполняем следующие действия:

  1. Создаем конфигурационный файл для dockerd:
    nano /etc/systemd/system/docker.service.d/startup_options.conf
  2. Прописываем в него следующее содержимое:
    #/etc/systemd/system/docker.service.d/override.conf
    
    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376

    Вместо стандартного порта 2376 можно указать любой другой. Соответственно, его нужно будет указывать при добавлении узла в кластер.

  3. Перечитываем конфигурационные файлы:
    sudo systemctl daemon-reload
  4. Перезапускаем демон:
    sudo systemctl restart docker.service

Теперь наш узел сможет принимать и реагировать на команды удаленного управления из VMware Admiral. Пришло время создать кластер и добавить в него узлы:

  1. Открываем веб-интерфейс управления Admiral, набрав в браузере адрес:

http://Server_IP_Address:8282

2. Переходим на вкладку Кластеры

3. Нажимаем +Создать

Добавление хоста с Docker

4. Заполняем поля, внося данные первого узла кластера и нажимаем Сохранить

5. Переходим в созданный кластер на вкладку Ресурсы

6. Нажимаем +Узел

7. Заполняем данные второго узла кластера и нажимаем Добавить

Добавление узла

8. Повторяем процедуру, пока в кластер не будут внесены все требуемые узлы

Готовый кластер

Точно таким же образом можно создать кластер из хостов с VMware vSphere® Integrated Containers™. Теперь всеми узлами будет управлять VMware Admiral. Для этого на них автоматически развертывается специальный агент в виде контейнера. Попробуем на каждом подконтрольном узле развернуть нужный нам сервис из публичного репозитория:

1. Переходим на вкладку Общедоступные репозитории

2. Выбираем нужное приложение и нажимаем на стрелочку вниз, рядом с кнопкой Подготовка

3. Нажимаем Введите дополнительные сведения

4. Переходим на вкладку Политика

5. В графе Размер кластера указываем желаемое количество хостов, на которых будет развернуто приложение

Подготовка контейнера

6. Заполняем оставшиеся параметры (если необходимо) и нажимаем Подготовить

Буквально через несколько секунд на все хосты кластера будет установлено нужное приложение, и оно станет доступно для использования. Это отличный вариант для быстрого масштабирования веб-сервисов или тестирования продукта.

Что такое Harbor

Для того чтобы хранить образы контейнеров обычно используется общедоступный репозиторий Docker Hub. Такой подход неприменим для корпоративного использования. Для решения этой проблемы был создан Project Harbor, представляющий собой форк Docker Hub с массой дополнительных возможностей, требуемых для Enterprise.

Ключевая особенность решения — повышенная безопасность образов. При выполнении push- и pull- операций Harbor сканирует их на уязвимости и, в случае обнаружения проблем, уведомляет администратора реестра, а также позволяет заблокировать проблемный образ.

VMware Harbor был выпущен также, как и Admiral в виде отдельного продукта под свободной лицензией и его можно скачать из репозитория на GitHub. Совместное применение этих программных продуктов позволяет создать полноценную инфраструктуру на базе контейнеров.

Установка VMware Harbor не отличается сложностью:

  1. Скачиваем архив в формате tgz
  2. Выполняем команду
    tar xvf harbor-offline-installer-.tgz
  3. Переходим в директорию
    cd harbor-offline-installer-
  4. Запускаем установочный скрипт
    sudo ./install.sh

После выполнения установки можно зайти в веб-интерфейс Harbor, используя адрес сервера.

Заключение

Работа с контейнерами Docker и vSphere Integrated Containers значительно упрощается при использовании такого инструмента, как VMware Admiral. Объединив vSphere Integrated Containers Engine by VMware® с VMware Harbor и VMware Admiral вы получите гибкое и хорошо настраиваемое решение Enterprise-уровня для развертывания любых сервисов на базе контейнеров, а также сможете управлять существующими Docker-хостами из привычного интерфейса.

Какие продукты вы используете совместно с Docker? Поделитесь своим опытом в комментариях.