Руководство. Развертывание группы с несколькими контейнерами с помощью ФАЙЛА YAML

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

В этом руководстве объясняется, как выполнить простую конфигурацию сопроводительного приложения с двумя контейнерами, развернув YAML-файл с помощью Azure CLI. Файл YAML — это краткий формат для указания параметров экземпляра. Узнайте следующие темы:

  • Настройка YAML-файла.
  • Развертывание группы контейнеров
  • Просмотр журналов контейнеров.

Примечание.

Многоконтенерные группы сейчас ограничены контейнерами Linux.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Настройка YAML-файла.

Чтобы развернуть многоконтейнерную группу с помощью команды az container create в Azure CLI, вы должны указать конфигурацию группы контейнеров в YAML-файле. Затем передайте YAML-файл в качестве параметра в команду.

Сначала скопируйте следующий YAML-файл в новый файл с именем deploy-aci.yaml. В Azure Cloud Shell для создания файла в рабочей папке можно применить Visual Studio Code.

code deploy-aci.yaml

Этот YAML-файл определяет группу контейнеров с именем "myContainerGroup", имеющую два контейнера, общедоступный IP-адрес и два предоставленных порта. Контейнеры развертываются на основе общедоступных образов корпорации Майкрософт. Первый контейнер в группе запускает веб-приложение с выходом в Интернет. Второй контейнер, расширение, периодически отправляет HTTP-запросы веб-приложению, запущенному в первом контейнере через локальную сеть группы контейнеров.

apiVersion: 2019-12-01
location: eastus
name: myContainerGroup
properties:
  containers:
  - name: aci-tutorial-app
    properties:
      image: mcr.microsoft.com/azuredocs/aci-helloworld:latest
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
      ports:
      - port: 80
      - port: 8080
  - name: aci-tutorial-sidecar
    properties:
      image: mcr.microsoft.com/azuredocs/aci-tutorial-sidecar
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
  osType: Linux
  ipAddress:
    type: Public
    ports:
    - protocol: tcp
      port: 80
    - protocol: tcp
      port: 8080
tags: {exampleTag: tutorial}
type: Microsoft.ContainerInstance/containerGroups

Чтобы использовать частный реестр образов контейнеров, добавьте свойство imageRegistryCredentials в группу контейнеров с актуальными значениями для вашей среды:

  imageRegistryCredentials:
  - server: imageRegistryLoginServer
    username: imageRegistryUsername
    password: imageRegistryPassword

Развертывание группы контейнеров

Создайте группу ресурсов с помощью команды az group create.

az group create --name myResourceGroup --location eastus

Разверните группу контейнеров с помощью команды az container create, передав YAML-файл как аргумент.

az container create --resource-group myResourceGroup --file deploy-aci.yaml

В течение нескольких секунд вы должны получить исходный ответ Azure.

Просмотр состояния развертывания

Чтобы просмотреть состояние развертывания, используйте следующую команду az container show.

az container show --resource-group myResourceGroup --name myContainerGroup --output table

Если вы хотите просмотреть запущенное приложение, перейдите к его IP-адресу в своем браузере. Например, в этом примере выходных данных используется IP-адрес 52.168.26.124:

Name              ResourceGroup    Status    Image                                                                                               IP:ports              Network    CPU/Memory       OsType    Location
----------------  ---------------  --------  --------------------------------------------------------------------------------------------------  --------------------  ---------  ---------------  --------  ----------
myContainerGroup  danlep0318r      Running   mcr.microsoft.com/azuredocs/aci-tutorial-sidecar,mcr.microsoft.com/azuredocs/aci-helloworld:latest  20.42.26.114:80,8080  Public     1.0 core/1.5 gb  Linux     eastus

Просмотр журналов контейнеров

Просмотрите выходные данные журнала контейнера с помощью команды az container logs. Аргумент --container-name определяет контейнер, из которого извлекаются журналы. В этом примере указывается контейнер aci-tutorial-app.

az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-app

Выходные данные:

listening on port 80
::1 - - [02/Jul/2020:23:17:48 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:51 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:54 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"

Чтобы просмотреть журналы для сопроводительного контейнера, выполните аналогичную команду с именем контейнера aci-tutorial-sidecar.

az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-sidecar

Выходные данные:

Every 3s: curl -I http://localhost                          2020-07-02 20:36:41

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0  1663    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Wed, 29 Nov 2017 06:40:40 GMT
ETag: W/"67f-16006818640"
Content-Type: text/html; charset=UTF-8
Content-Length: 1663
Date: Thu, 02 Jul 2020 20:36:41 GMT
Connection: keep-alive

Как видите, сопроводительное приложение периодически выполняет HTTP-запрос к основному веб-приложению через локальную сеть группы, чтобы убедиться, что оно работает. Пример сопроводительного приложения можно расширить, реализовав активацию оповещения при получении кода ответа HTTP, который отличается от 200 OK.

Следующие шаги

Из этого руководства вы узнали, как применить YAML-файл для развертывания многоконтейнерной группы в службе "Экземпляры контейнеров Azure". Вы научились выполнять следующие задачи:

  • Настройка YAML-файла для многоконтейнерной группы
  • Развертывание группы контейнеров
  • Просмотр журналов контейнеров.

Вы также можете определить многоконтейнерную группу с использованием шаблона Resource Manager. Шаблон Resource Manager можно легко адаптировать под такие сценарии, в которых нужно развернуть дополнительные ресурсы служб Azure в группе контейнеров.