Недавно мы писали о новых возможностях VMware vSphere 6.5, где одним из нововведений стала релизная версия технологии vSphere Integrated Containers, позволяющая создавать инфраструктуру виртуальных приложений Docker в виртуальных машинах vSphere.
Недавно мы уже писали о vSphere Integrated Containers, а сегодня мы расскажем об этой технологии поподробнее. Начнем с обзорного видео:
Технологию можно представить следующей диаграммой:
Ниже будет рассказано о трех основных компонентах технологии vSphere Integrated Containers, каждый из которых построен как Open Source программное обеспечение, поэтому каждая компания может использовать различные компоненты экосистемы VIC, дорабатывать их и делать вклад в развитие этих проектов. Между тем, функциональность vSphere Integrated Containers доступна только для пользователей с лицензией vSphere Enterprise Plus (видимо, считается, что технология VIC нужна только крупным компаниям).
vSphere Integrated Container Engine (VIC Engine)
Это специальный движок контейнеров, который работает не в той же виртуальной машине, что и сам контейнер, а вынесен в специальный компонент Virtual Containter Host (VCH), который представляет собой специальный объект vApp, создаваемый при развертывании. Также VCH обслуживает компонент Docker Endpoint (это маленькая ВМ), который предоставляет внешние интерфейсы для управления контейнерами через API администраторам приложений (развертывание новых контейнеров и обслуживание существующих).
IP-адрес машины Docker Endpoint передается администратором vSphere пользователям, которые развертывают и обслуживают приложения Docker. Когда пользователь VIC Engine выполняет команду:
docker run –H <IP> busybox
то небольшой образ на базе busybox вытаскивается с хранилища Docker Hub и превращается в виртуальную машину со всеми необходимыми интерфейсами внутри объекта vApp, которым является Virtual Container Host.
Этот компонент позволяет хранить образы контейнеров. Если вам необходимо поместить приложение в контейнер и распространять его в своей инфраструктуре, нужно воспользоваться таким реестром. Для движка Docker - это компонент Docker Hub.
Проблема в том, что репозиторий Docker Hub открыт абсолютно всем, поэтому VMware сделала свой репозиторий Project Harbor (это форк проекта Docker Hub), который также является Open Source-компонентом, но предоставляет отдельное корпоративное хранилище образов в рамках инфраструктуры компании. Поставляется он в виде виртуального модуля в формате OVA.
Инженеры VMware взяли исходный код Docker Registry, добавили Enteprise-возможности, такие как поддержку LDAP/AD, ролевую модель доступа, а также пользовательский интерфейс - и выделили его в отдельный проект Harbor.
Вот тут на GitHub можно найти публичный репозиторий проекта Harbor.
Container Management Portal (Project Admiral)
Это специализированный портал управления, который при операциях с контейнерами предоставляет следующие возможности:
Создание нового хоста для контейнеров ( Virtual Containter Host, VCH).
Управление квотами ресурсов.
Определение новых шаблонов контейнеров для развертывания.
Управление состоянием контейнеров.
Admiral - это расширение набора средств автоматизации vRealize Automation 7.2, которое добавляет туда возможности управления контейнерами. Информация об этом доступна здесь.
Но поскольку Admiral может быть развернут отдельно от vRA, VMware включила его в состав VIC как отдельный продукт. Кстати, не все возможности Admiral используются для виртуальных машин с контейнерами внутри, так как типа они могут конфликтовать со средствами виртуализации, но все основные функции там есть.
Посмотрите, как работает Admiral:
Публичный репозиторий Project Admiral находится здесь. Помните, что он все еще находится в состоянии беты!