Краткое руководство. Развертывание существующего образа контейнера с помощью командной строки
С помощью службы "Контейнеры приложений Azure" можно запускать микрослужбы и контейнерные приложения на бессерверной платформе. Благодаря Контейнерам приложений Azure вы можете пользоваться преимуществами выполнения контейнеров, не заботясь о настройке облачной инфраструктуры вручную и сложных оркестраторах контейнеров.
В этой статье показано, как развернуть существующий контейнер в Контейнерах приложений Azure.
Примечание.
Авторизация частного реестра поддерживается с помощью имени пользователя и пароля реестра.
Необходимые компоненты
- Учетная запись Azure с активной подпиской.
- Если у вас нет учетной записи, вы можете создать ее бесплатно.
- Установите интерфейс командной строки Azure.
- Доступ к общедоступному или частному реестру контейнеров, например к Реестр контейнеров Azure.
Настройка
Чтобы войти в Azure из ИНТЕРФЕЙСА командной строки, выполните следующую команду и следуйте инструкциям, чтобы завершить процесс проверки подлинности.
az login
Чтобы убедиться, что вы используете последнюю версию интерфейса командной строки, выполните команду обновления.
az upgrade
Затем установите или обновите расширение "Приложения контейнеров Azure" для интерфейса командной строки.
Если при выполнении az containerapp
команд в Azure CLI или командлетах из Az.App
модуля PowerShell возникают ошибки о отсутствующих параметрах, убедитесь, что установлена последняя версия расширения "Приложения контейнеров Azure".
az extension add --name containerapp --upgrade
Примечание.
Начиная с мая 2024 г. расширения Azure CLI больше не поддерживают предварительные версии функций по умолчанию. Чтобы получить доступ к функциям предварительной версии контейнерных приложений, установите расширение "Приложения контейнеров" с --allow-preview true
помощью .
az extension add --name containerapp --upgrade --allow-preview true
Теперь, когда установлено текущее расширение или модуль, зарегистрируйте Microsoft.App
пространства имен и Microsoft.OperationalInsights
пространств имен.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Настройка переменных среды
Задайте следующие переменные среды. Замените значения следующими <PLACEHOLDERS>
значениями:
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
создание группы ресурсов Azure;
Создайте группу ресурсов для упорядочивания служб, связанных с развертыванием приложения контейнера.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Создать среду
Среда в Azure Container Apps создает безопасную границу вокруг группы приложений-контейнеров. Развертываемые в одной среде приложения-контейнеры развертываются в одной виртуальной сети и записывают журналы в одну рабочую область Log Analytics.
Чтобы создать среду, выполните следующую команду:
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
Создание приложения-контейнера
Создав среду, вы можете развернуть первое приложение-контейнер.
Задайте переменные среды.
Замените
<PLACEHOLDERS>
значения своими значениями. Имя субъекта-пользователя обычно будет иметь формат адреса электронной почты (например,username@domain.com
).CONTAINER_APP_NAME=my-container-app KEY_VAULT_NAME=my-key-vault USER_PRINCIPAL_NAME=<USER_PRINCIPAL_NAME> SECRET_NAME=my-secret-name CONTAINER_IMAGE_NAME=<CONTAINER_IMAGE_NAME> REGISTRY_SERVER=<REGISTRY_SERVER> REGISTRY_USERNAME=<REGISTRY_USERNAME>
Создайте хранилище ключей.
Хранение пароля реестра контейнеров с помощью службы, такой как Azure Key Vault , всегда обеспечивает безопасность значений. В этом разделе показано, как создать хранилище ключей, сохранить пароль реестра контейнеров в Key Vault, а затем получить пароль для использования в коде.
az keyvault create --name $KEY_VAULT_NAME --resource-group $RESOURCE_GROUP
Предоставьте учетным записям пользователя разрешения на управление секретами в хранилище ключей.
KEY_VAULT_ID=$(az keyvault show --name $KEY_VAULT_NAME --query id --output tsv) az role assignment create --role "Key Vault Secrets Officer" --assignee "$USER_PRINCIPAL_NAME" --scope "$KEY_VAULT_ID"
Сохраните пароль реестра контейнеров в хранилище ключей.
Замените
<REGISTRY_PASSWORD>
значением.az keyvault secret set --vault-name $KEY_VAULT_NAME --name $SECRET_NAME --value "<REGISTRY_PASSWORD>"
Извлеките пароль реестра контейнеров из хранилища ключей.
REGISTRY_PASSWORD=$(az keyvault secret show --name $SECRET_NAME --vault-name $KEY_VAULT_NAME --query value --output tsv)
Разверните образ контейнера в приложениях контейнеров Azure.
az containerapp create \ --name $CONTAINER_APP_NAME \ --location $LOCATION \ --resource-group $RESOURCE_GROUP \ --image $CONTAINER_IMAGE_NAME \ --environment $CONTAINERAPPS_ENVIRONMENT \ --registry-server $REGISTRY_SERVER \ --registry-username $REGISTRY_USERNAME \ --registry-password $REGISTRY_PASSWORD
Если вы включили входящий трафик в приложении-контейнере, можно добавить
--query properties.configuration.ingress.fqdn
в командуcreate
, чтобы получить общедоступный URL-адрес приложения.
Задайте переменные среды.
CONTAINER_APP_NAME=my-container-app CONTAINER_IMAGE_NAME=mcr.microsoft.com/k8se/quickstart:latest
Разверните образ контейнера в приложениях контейнеров Azure.
az containerapp create \ --image $CONTAINER_IMAGE_NAME \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $CONTAINERAPPS_ENVIRONMENT
Если вы включили входящий трафик в приложении-контейнере, можно добавить
--query properties.configuration.ingress.fqdn
в командуcreate
, чтобы получить общедоступный URL-адрес приложения.
Проверка развертывания
Чтобы убедиться, что развертывание было выполнено успешно, можно запросить рабочую область Log Analytics. Возможно, вам придется подождать несколько минут после развертывания, чтобы аналитика прибыла в первый раз, прежде чем вы сможете запросить журналы. Это зависит от ведения журнала консоли, реализованного в приложении контейнера.
Используйте следующие команды для просмотра сообщений журнала консоли.
LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az containerapp env show --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP --query properties.appLogsConfiguration.logAnalyticsConfiguration.customerId --out tsv`
az monitor log-analytics query \
--workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
--analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == $CONTAINER_APP_NAME | project ContainerAppName_s, Log_s, TimeGenerated" \
--out table
Очистка ресурсов
Если вы не собираетесь продолжать использовать это приложение, выполните приведенную ниже команду, чтобы удалить группу ресурсов вместе со всеми ресурсами, созданными в ходе работы с этим кратким руководством.
Внимание
Следующая команда удаляет указанную группу ресурсов и все ресурсы, содержащиеся в ней. Если в указанной группе ресурсов существуют другие ресурсы, кроме созданных для этого краткого руководства, они также будут удалены.
az group delete --name $RESOURCE_GROUP
Совет
Возникли проблемы? Сообщите о них в репозитории Azure Container Apps на GitHub.