Общие сведения о решениях для размещения контейнера Docker с помощью службы контейнеров Azure (не рекомендуется)

Предупреждение

Служба контейнеров Azure (ACS) выводится из эксплуатации. В нее больше не добавляются новые компоненты или функциональные возможности. Все API, интерфейс портала, команды CLI и документы помечаются как нерекомендуемые.

Дополнительные сведения см. в статье Поддержка Службы контейнеров Azure будет прекращена 31 января 2020 года.

Мы рекомендуем развернуть одно из следующих решений Azure Marketplace:

См. дополнительные сведения о Службе Azure Kubernetes.

Служба контейнеров Azure позволяет упростить создание и настройку кластера виртуальных машин, настроенных для запуска контейнерных приложений, а также управление такими машинами. Используется оптимизированная конфигурация популярных средств планирования и оркестрации с открытым исходным кодом. Это позволяет использовать имеющиеся навыки либо положиться на опыт обширного и постоянно увеличивающегося сообщества при развертывании приложений на основе контейнера в Microsoft Azure и управлении ими.

Служба контейнеров Azure предоставляет средства для управления контейнерными приложениями на нескольких узлах в Azure.

Служба контейнеров Azure использует формат контейнера Docker, чтобы обеспечить полную переносимость контейнеров приложения. Она также поддерживает Marathon и DC/OS, Docker Swarm и Kubernetes, позволяя масштабировать эти приложения до тысяч и даже десятков тысяч контейнеров.

Служба контейнеров Azure позволяет воспользоваться преимуществами функций корпоративного уровня в Azure, сохранив при этом переносимость приложений, в том числе на уровнях оркестрации.

Использование службы контейнеров Azure

Цель, которой мы стремимся достичь с помощью службы контейнеров Azure, заключается в том, чтобы предоставить среду для размещения контейнеров, применяя средства и технологии с открытым исходным кодом, которые сейчас пользуются популярностью среди клиентов. Для этого мы предоставляем стандартные конечные точки API для выбранного вами оркестратора (DC/OS, Docker Swarm или Kubernetes). С помощью этих конечных точек можно использовать любое программное обеспечение, способное взаимодействовать с ними. Например, в случае конечной точки Docker Swarm можно использовать интерфейс командной строки (CLI) Docker. Для DC/OS можно выбрать интерфейс командной строки DCOS. Для Kubernetes можно выбрать kubectl.

Создание кластера Docker с помощью службы контейнеров Azure

Чтобы приступить к работе со Службой контейнеров Azure, разверните кластер Службы контейнеров Azure с помощью портала (выполните в Marketplace поиск по словам Служба контейнеров Azure), воспользовавшись шаблоном Azure Resource Manager (Docker Swarm, DC/OS или Kubernetes) или Azure CLI. Предоставляемые шаблоны быстрого запуска можно изменять, включив дополнительную или расширенную конфигурацию Azure. Дополнительные сведения см. в статье Развертывание кластера службы контейнеров Azure.

Развертывание приложения

Служба контейнеров Azure позволяет выбрать для оркестрации Docker Swarm, DC/OS или Kubernetes. Способ развертывания приложения зависит от выбранного оркестратора.

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

DC/OS — это распределенная операционная система на базе ядра распределенных систем Apache Mesos. Apache Mesos принадлежит Apache Software Foundation. Среди пользователей и соавторов этой системы — известные в ИТ-отрасли компании.

Служба контейнеров Azure, настроенная для DC/OS и показывающая агенты и главные узлы.

В DC/OS и Apache Mesos доступны впечатляющие функции.

  • Надежная масштабируемость
  • Отказоустойчивые, реплицируемые основная и вторичные системы на базе Apache ZooKeeper
  • Поддержка контейнеров в формате Docker
  • Собственная изоляция между задачами с помощью контейнеров Linux
  • Планирование множественных ресурсов (память, ЦП, диск и порты)
  • API-интерфейсы Java, Python и C++ для разработки новых параллельных приложений
  • Веб-интерфейс для просмотра состояния кластера

По умолчанию ОС DC/OS, работающая в службе контейнеров Azure, включает платформу оркестрации Marathon для планирования рабочих нагрузок. Однако при развертывании в DC/OS Службы контейнеров Azure также доступен пакет служб Mesosphere Universe, которые можно добавлять в свою службу. К ним относятся службы Spark, Hadoop, Cassandra и многие другие.

DC/OS Universe в службе контейнеров Azure

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

Marathon представляет собой систему инициализации и управления на уровне кластера для служб в cgroups или — как в случае со службой контейнеров Azure — в контейнерах в формате Docker. Marathon предоставляет веб-интерфейс, из которого можно развертывать приложения. К нему можно перейти по URL-адресу следующего вида: http://DNS_PREFIX.REGION.cloudapp.azure.com где DNS_PREFIX и РЕГИОН определяются во время развертывания. Вы можете задать свое собственное DNS-имя. Дополнительные сведения о запуске контейнера с помощью пользовательского веб-интерфейса Marathon см. в статье Управление контейнером DC/OS службы контейнеров Azure с помощью веб-интерфейса Marathon.

Список приложений Marathon

Кроме того, вы можете использовать интерфейсы REST API для взаимодействия с Marathon. Для каждого инструмента доступен ряд клиентских библиотек. Библиотеки представлены на разных языках и в каждом из них можно использовать протокол HTTP. Кроме того, Marathon поддерживается во многих популярных инструментах DevOps. Это обеспечивает максимальную гибкость работы с кластером службы контейнеров Azure. Дополнительные сведения о запуске контейнера с помощью REST API Marathon см. в статье Управление контейнерами DC/OS с помощью REST API Marathon.

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

Docker Swarm предоставляет собственные функции кластеризации для Docker. Поскольку Docker Swarm использует стандартный API Docker, любой инструмент, любое средство, которое уже взаимодействует с управляющей программой Docker, может использовать Swarm для прозрачного масштабирования на нескольких узлах в службе контейнеров Azure.

Служба контейнеров Azure, настроенная для использования Swarm.

Примечание

Оркестратор Docker Swarm в службе контейнеров Azure использует автономную устаревшую версию Swarm. Сейчас интегрированный режим Swarm (в Docker версии 1.12 или выше) не является поддерживаемым оркестратором в службе контейнеров Azure. Если вы хотите развернуть кластер режима Swarm в Azure, воспользуйтесь модулем ACS с открытым кодом, шаблоном быстрого запуска, предоставленным сообществом, или решением Docker в Azure Marketplace.

К поддерживаемым средствам для управления контейнерами в кластере Swarm относятся следующие:

  • Dokku
  • Docker CLI и Docker Compose
  • Krane
  • Jenkins

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

Kubernetes — это популярный инструмент оркестрации контейнеров для рабочих сред с открытым кодом. Kubernetes автоматизирует развертывание, масштабирование приложений-контейнеров и управление ими. Так как это решение имеет открытый исходный код и создано с использованием опыта сообщества разработчиков ПО с открытым исходным кодом, его можно с легкостью запустить в службе контейнеров Azure и использовать для развертывания контейнеров в ней.

Служба контейнеров Azure, настроенная для использования Kubernetes.

Это решение предоставляет обширный набор возможностей, в том числе:

  • Горизонтальное масштабирование
  • обнаружение служб и балансировка нагрузки;
  • управление секретами и конфигурациями;
  • автоматические обновления и откаты на основе API;
  • Самостоятельное восстановление

Видеоролики

Приступая к работе со службой контейнеров Azure (101):

Создание приложений с помощью службы контейнеров Azure (Build 2016)

Дальнейшие действия

Разверните кластер службы контейнеров с помощью портала или Azure CLI.