Это второй блог 2-блог серии о масштабируемости платформы DCHQ с использованием Плетение в качестве базового сетевого уровня в. Первый блог охватывала развертывание 10000 контейнеров на 10 Weave Кластеры, каждый из которых имеет 3 облачные серверы на Rackspace с 4 Гб оперативной памяти и 2 -х процессоров.
В этом блоге мы рассмотрим развертывание 2000 контейнеров - но вместо того , чтобы использовать 10 кластеров с 3 облачных серверов каждый, мы будем использовать один кластер Weave с 30 облачных серверов . DCHQ не только позволяет автоматизировать развертывание приложений и управление, но она также автоматизирует инфраструктуру выделения ресурсов & автоматическое масштабирование на 13 различных облаков & платформ виртуализации. Подробнее об этом тесте масштабируемости в этом блоге.
Задний план
В то время как переносимость приложений (то есть возможность запускать те же приложения на любом хосте Linux) по- прежнему является ведущей движущей силой для принятия Linux Containers, еще одним ключевым преимуществом является возможность оптимизации использования сервера , так что вы можете использовать каждый бит вычислений. Конечно, для вверх по течению средах, как Prod, вы можете по- прежнему хочу посвятить более чем достаточно процессора и памяти для вашей рабочей нагрузки - но в средах / TEST Дэв, которые обычно составляют большинство потребления вычислительных ресурсов в организации, оптимизации использования сервера может приведет к значительной экономии средств.
Все это звучит хорошо на бумаге - но DevOps инженеры и операторы инфраструктуры по-прежнему бороться со следующими вопросами:
- Как может я группировать серверы через различные облака в кластеры, которые сопоставляются с бизнес-групп, групп разработчиков или прикладных проектов?
- Как отслеживать эти кластеры и получить представление о потреблении ресурсов различными группами или пользователями?
- Как настроить сеть между серверами в кластере, так что контейнеры через несколько хостов могут взаимодействовать друг с другом?
- Как определить свой собственный потенциал на основе политики размещения, так что я могу использовать каждый бит вычислений в кластере?
- Как я могу автоматически масштабировать кластер для удовлетворения потребностей разработчиков для развертывания новых приложений на базе контейнеров?
DCHQ, доступный в принимающей стороной и на предпосылке версиях, устраняет все эти проблемы и обеспечивает самые передовые политики инфраструктуры выделения ресурсов, автоматическое масштабирование, кластеризации и размещения для операторов инфраструктуры или DevOps инженеров.
- Пользователь может зарегистрировать любой хост Linux работает в любом месте, запустив автоматически сгенерированный скрипт для установки агента DCHQ, наряду с Докер и программируемыми параметрами сетевого уровня ( по желанию). Эта задача может быть автоматизирована программным способом с помощью наших REST API для создания "Docker серверов" ( https://dchq.readme.io/docs/dockerservers )
- В качестве альтернативы, DCHQ интегрируется с 13 облачных провайдеров, позволяя пользователям автоматически раскручиваться виртуальной инфраструктуры на Vsphere, OpenStack, CloudStack, Amazon Elastic Cloud Computing, Google Compute Engine, Rackspace, DigitalOcean, SoftLayer, Microsoft Azure, и многие другие.
Создание шаблона приложения для The Nginx Cluster
После входа в систему, чтобы DCHQ (либо принимал DCHQ.io или на предпосылке версии), пользователь может перейти к App & Machine , а затем нажмите на + кнопку , чтобы создать новый Докер Compose шаблон.
Мы создали простой Nginx кластера ради этого теста масштабируемости. Вы заметите , что CLUSTER_SIZE параметр позволяет указать количество контейнеров для запуска (с теми же зависимостей приложений).
Mem_min параметр позволяет specifcy минимальное количество памяти вы хотели бы выделить в контейнер.
Хоста параметр позволяет указать хост вы хотели бы использовать для развертывания контейнеров. Таким образом , вы можете обеспечить высокую доступность для ваших кластеров серверов приложений в различных хостов (или регионах) , и вы можете соблюдать правила сродства , чтобы гарантировать , что база данных работает на отдельном хосте, например. Ниже приведены значения , которые поддерживаются для параметра хоста:
- host1, host2, host3 и т.д. - выбирает хост случайным образом в пределах дата-центра (или кластер) для развертывания контейнеров
- <IP - адрес 1, 2 IP - адреса и т.д.> - позволяет пользователю указать фактический IP - адреса используются для развертывания контейнеров
- <Hostname 1, Hostname 2 и т.д.> - позволяет пользователю определить фактические имена хостов использовать для развертывания контейнеров
- Подстановочные (например , "db- *" или "приложение-srv- *") - указание использовать групповые символы в имени хоста
Provisioning подстилающей инфраструктуры на любом облаке
После того, как приложение сохраняется, пользователь может зарегистрировать поставщика облако автоматизировать выделение ресурсов и автоматическое масштабирование кластеров по 13 различных облачных конечных точек, включая Vsphere, OpenStack, CloudStack, Amazon Web Services, Rackspace, Microsoft Azure, DigitalOcean, HP Public Облако, IBM SoftLayer, Google Compute Engine, и многие другие.
Во- первых, пользователь может зарегистрировать поставщика облако для Rackspace (например), перейдя в облачных провайдеров , а затем нажав на кнопку + , чтобы выбрать Rackspace. Rackspace Ключ API должен быть обеспечен , - которые могут быть извлечены из раздела Настройки аккаунта.
Затем пользователь может создать кластер с автоматической масштабной политики для автоматического раскрутки новых серверов Облако. Это может быть сделано путем перехода к кластерам страницы , а затем нажав на + кнопке. Вы можете выбрать политику размещения мощностей на основе , а затем Плетение в качестве сетевого уровня для того , чтобы облегчить безопасный, защищенный паролем кросс-контейнеровоз связь между несколькими хостами в кластере. В этом случае мы также определили политику автоматического масштабирования , которая будет автоматически раскручиваться облачных серверов в этом кластере до максимального предела , определенного (в данном случае 30 облачных серверов). Гранулированные полномочия доступны , чтобы убедиться , что этот кластер может использоваться только 10 пользователей , которые мы применяем в этом тесте (user1@dchq.io, user2@dchq.io, ..., user10@dchq.io~~HEAD=pobj). И, наконец, право может быть определен на уровне план (или шаблон приложения) - чтобы гарантировать , что только целевое приложения могут быть развернуты в этой общей группе. В этом случае кластер был открыт для всех "Blueprints".
Пользователь может в настоящее время положение несколько облачных серверов на вновь созданном кластере либо через рабочий процесс ПИориентированного или путем определения простого YAML на основе шаблона Machine Compose, которая может быть запрошена из библиотеки самообслуживания.
Рабочий процесс UI на основе - Пользователь может запросить Rackspace Cloud Servers, перейдя в машинах , а затем нажав на + кнопку , чтобы выбрать Rackspace . После того, как поставщик Облако выбран, пользователь может выбрать область, размер и изображение , необходимое. Порты открываются по умолчанию на Rackspace Cloud Servers , чтобы приспособить некоторые требования порта (например 32000-59000 для Докер, 6783 для Weave, и 5672 для RabbitMQ). Кластер затем выбирается и может быть определено количество облачных серверов.
YAML основе Machine Compose Template - пользователь может сначала создать шаблон машины для Compose Rackspace, перейдя машин , а затем выбрав Machine Compose .
Поддерживаются следующие параметры для шаблона машины Compose приведены ниже:
- Описание : Описание Blueprint / шаблона
- instanceType : Облачный провайдер конкретное значение (например , general1-4)
- регион : Облачный провайдер конкретное значение (например , IAD)
- Изображение : обязательно - полное изображение ID / имя (например , IAD / 5ed162cc-b4eb-4371-b24a-a0ae73376c73 или Vsphere VM Имя шаблона)
- Имя пользователя : Необязательно - только для пользователя Vsphere VM Template
- Пароль : Необязательно - только для Vsphere VM Template зашифрованный пароль. Вы можете шифровать пароль с помощью конечной точки https://www.dchq.io/#/encrypt~~HEAD=dobj
- Сеть : Дополнительно - Облако поставщик конкретное значение (например , по умолчанию)
- SecurityGroup : Облачный провайдер конкретное значение (например , dchq-безопасности группа)
- KeyPair : Облачный провайдер конкретное значение (например , секретный ключ)
- openPorts : Необязательно - разделенные запятыми значения портов
- не считать : общее количество ВМ, по умолчанию 1.
После того , как шаблон Machine Compose сохраняется, пользователь может запросить эту машину от Self-Service Library . Пользователь может щелкнуть Настройка , а затем выберите поставщика облако и кластера использовать для инициализации этих Rackspace Cloud Servers.
Развертывание кластера Nginx Использование DCHQ Программным отдохнем API,
После того , как серверы облачными подготовлено, пользователь может развернуть кластер Nginx программно с помощью DCHQ в REST API. Для упрощения использования API, пользователь должен будет выбрать кластер , созданный ранее в качестве кластера по умолчанию. Это можно сделать, перейдя в Мой профиль , а затем выберите кластер по умолчанию необходимо.
После того, как кластер по умолчанию выбран, то пользователь может просто выполнить следующий завиток скрипт , который вызывает "развернуть" API ( https://dchq.readme.io/docs/deployid~~HEAD=dobj ).
В этом простом завитка сценария, мы имеем следующее:
- Для цикла, от 1 до 20
- С каждой итерации мы развертывание кластерный приложения Nginx с помощью кластера по умолчанию присваивается user1@dchq.io~~V
- user1% 40dchq.io используется для user1@dchq.io~~pobj , где символ @ заменяется на шестнадцатеричный% 40
- @ Между паролем и хост не заменяется гекса
- <идентификатор> относится к применению кластера Nginx ID. Это может быть восстановлена путем перехода к библиотеке > Настройка для кластера Nginx. Идентификатор должен быть в URL
- сон 22 используется между каждой итерации
- После выполнения этого сценария, 200 Nginx контейнеры были бы развернуты user1@dchq.io~~pobj - 20 итераций развертывания кластера Nginx 10 контейнеров каждый.
Затем мы повторили тот же процесс для других пользователей (user2@dchq.io, user3@dchq.io, ..., user10@dchq.io~~HEAD=pobj~~number=plural) - все внедряющих к одной общей группе.
Вы можете попробовать этот локонов сценарий самостоятельно. Вы можете установить DCHQ On-Premise ( http://dchq.co/dchq-on-premise.html ) или зарегистрироваться на DCHQ.io Hosted PaaS ( http://dchq.io ).
Мониторинг процессора, памяти и Использование ввода / вывода кластера, серверы и Идущие контейнеры
DCHQ позволяет пользователям следить процессора, памяти, диска и ввода / вывода из кластеров, узлов и контейнеров.
- Для мониторинга кластеров, вы можете просто перейти к кластерам
- Для мониторинга хостов, вы можете просто перейти к машины
- Для мониторинга контейнеров, вы можете просто перейти к жить Программы
Мы отслеживали производительность хостов и кластера до и после того, как мы запустили 2000 контейнеров.
После того, как раскручивается 2000 контейнеров, мы захватили скриншоты диаграмм производительности для кластера. Вы можете видеть , что агрегированные использование памяти через 30 облачных серверов в кластере был на 81% .
Вы можете видеть , что самая высокая загрузка памяти через 30 облачных серверов в кластере была на 84% .
Когда мы углубились в один из 30 хостов в кластере и видел больше деталей , как # контейнеров , работающих на этом конкретном хосте, количество изображений , тянули и конечно же , процессор / память / использования диска. В этом случае использование памяти этого конкретного хоста было 83% .
Вот вид всех запущенных 200 Nginx кластеров (где каждый кластер имел 10 контейнеров).
Вывод
Orchestrating развертывания приложений Docker на основе по-прежнему является проблемой для многих DevOps инженеров и операторов инфраструктуры, поскольку они часто испытывают трудности в управлении пулами серверов на нескольких команд разработчиков, где контроль доступа, мониторинга, создания сетей, создание на основе размещения, автоматическое масштабирование политики и квоты являются ключевыми аспектами, которые должны быть настроены.
DCHQ, доступный в принимающей стороной и на предпосылке версиях, устраняет все эти проблемы и обеспечивает самые передовые политики инфраструктуры выделения ресурсов, автоматическое масштабирование, кластеризации и размещения для операторов инфраструктуры или DevOps инженеров.
В дополнение к развитой инфраструктуре предоставления ресурсов и кластеризации возможностей, DCHQ упрощает контейнеризации корпоративных приложений через рамки композиции предварительной заявки, которая простирается Docker Compose с переменными окружения привязок кросс-изображения, расширяемых Баш скрипт плагинов, которые могут быть вызваны во время запроса или пост-положение, а также применение кластеризации для высокой доступности в нескольких хостов или регионах с поддержкой автоматического масштабирования.
чтобы получить доступ к вышедших из коробки шаблонов многоуровневая Java приложений наряду с функциональностью управления жизненным циклом приложений, таких как мониторинг, обновление контейнеров, окалины в / из и непрерывной доставки.
No comments:
Post a Comment