Руководство. Развертывание группы с несколькими контейнерами с помощью ФАЙЛА 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 с группой контейнеров.