Поневоле начинаешь сравнивать, что же все-таки лучше: виртуальные машины или контейнеры, чему отдать предпочтение и, наконец, как же всё это работает?
В этой статье мы познакомим вас с технологией vSphere Integrated Containers (VIC), позволяющей работать с контейнерами на vSphere как локально, так и в публичном облаке VMware. Являясь результатом тесной интеграции контейнерных механизмов Docker с гипервизором ESX, vSphere Integrated Containers предлагает возможность использовать существующие инструменты VMware для развертывания, администрирования и защиты приложений, оформленных в виде контейнеров.
Ключевые понятия инфраструктуры контейнеров
Virtual Container Host, или сокращенно VCH, является ключевым понятием инфраструктуры контейнеров. Однако называть его «хостом» было бы не совсем верно, несмотря на присутствие английского слова host в самом названии. Правильнее представлять VCH виртуальным объектом, который состоит из ресурсного пула (Resource Pool) VMware vSphere или кластера хостов ESXi. Таким образом, в рамках одного или нескольких VCH можно создавать контейнеры. Каждый виртуальный объект VCH обслуживает собственный кэш образов, которые загружаются из частных репозиториев либо из публичного хаба Docker.
Управление инфраструктурой VCH
Для управления инфраструктурой Virtual Container Host и выполнения мониторинга используется плагин для vSphere Web Client. Администраторы vSphere с помощью vSphere Integrated Containers могут создавать виртуальные объекты, соблюдая установленные бизнес-требования.
Рисунок 1. Доступность vSphere Integrated Containers в веб-консоли vSphere Web Client
Как отмечалось ранее, каждый VCH ассоциируется с пулом ресурсов vSphere, где определяются значения, связанные с памятью, процессором, а также хранилищем. При этом к объекту VCH можно подключаться удаленно, через интерфейс командной строки PowerCLI.
Рисунок 2. Возможность управления VCH через командную строку
Чтобы улучшить управляемость и обеспечить надежную изоляцию приложений, организовав безопасную и стабильную работу, каждый Docker-контейнер помещается в отдельно взятую виртуальную машину. Все изменения, которые происходят в контейнере, сохраняются отдельным слоем относительно базового образа, а каждый контейнер запускается изолированно от основной системы.
Напомним, что Docker — это своего рода разделение архитектуры приложений на более мелкие компоненты, которые запускаются в изолированных контейнерах, что позволяет достичь большего ускорения, параллелизации исполнения и надежности. С помощью Docker приложение отделяется от имеющейся инфраструктуры, обращаться с которой можно как с управляемым приложением. А Docker-контейнер представляет собой образ, который может быть записан и прочтен.
Экономия потребляемых ресурсов достигается за счет использования технологии VMFork, суть которой заключается в создании «на лету» клонов виртуальной машины, каждый из которых использует ту же память Shared Memory, что и родительская виртуалка. При этом происходит удаленное взаимодействие с объектом VCH, а не с отдельно взятым экземпляром контейнера, запущенного в существующей инфраструктуре.
Итоги
Суммируя сказанное, отметим, что технология vSphere Integrated Containers (VIC) предназначена для работы с контейнерами на базе VMware vSphere, где ключевым понятием инфраструктуры выступает виртуальный объект VCH.
Следите за новыми материалами нашего блога, в одном из них мы расскажем о применении VCH на практике.