Поделиться через


Руководство по созданию приложения-контейнера Azure в Kubernetes с поддержкой Azure Arc (предварительная версия)

В этом руководстве вы создадите приложение-контейнер для кластера Kubernetes с поддержкой Azure Arc (предварительная версия) и научитесь:

  • Создание приложения-контейнера в Azure Arc
  • Просмотр диагностика приложения

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

Прежде чем приступить к созданию приложения-контейнера, сначала необходимо настроить кластер Kubernetes с поддержкой Azure Arc для запуска приложений контейнеров Azure.

Добавление расширений Azure CLI

Откройте среду Bash в Azure Cloud Shell.

Запуск Cloud Shell в новом окне.

Затем добавьте необходимые расширения Azure CLI.

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

Следующая команда устанавливает пользовательское расширение "Приложения контейнеров", которое нельзя использовать с общедоступной облачной службой. При переключении в общедоступное облако Azure необходимо удалить расширение.

az extension add --upgrade --yes --name customlocation
az extension add --name containerapp  --upgrade --yes

Создание или изменение группы ресурсов

Создайте группу ресурсов для служб, созданных в этом руководстве.

GROUP_NAME="my-container-apps-resource-group"
az group create --name $GROUP_NAME --location eastus 

Получение сведений о пользовательском расположении

Получите следующую группу расположений, имя и идентификатор администратора кластера. Дополнительные сведения см. в статье "Создание настраиваемого расположения ".

CUSTOM_LOCATION_GROUP="<RESOURCE_GROUP_CONTAINING_CUSTOM_LOCATION>"
CUSTOM_LOCATION_NAME="<NAME_OF_CUSTOM_LOCATION>"

Получите идентификатор пользовательского расположения.

CUSTOM_LOCATION_ID=$(az customlocation show \
    --resource-group $CUSTOM_LOCATION_GROUP \
    --name $CUSTOM_LOCATION_NAME \
    --query id \
    --output tsv)

Получение идентификатора подключенной среды

Теперь, когда у вас есть идентификатор пользовательского расположения, можно запросить подключенную среду.

Подключенная среда в значительной степени аналогична стандартной среде контейнерных приложений, но базовый кластер Kubernetes с поддержкой Arc управляет ограничениями сети.

CONTAINER_APP_NAME="my-container-app"
CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env list --custom-location $CUSTOM_LOCATION_ID -o tsv --query '[].id')

Создать приложение

В приведенном ниже примере создается приложение Node.js.

 az containerapp create \
    --resource-group $GROUP_NAME \
    --name $CONTAINER_APP_NAME \
    --environment $CONNECTED_ENVIRONMENT_ID \
    --environment-type connected \
    --image mcr.microsoft.com/k8se/quickstart:latest \
    --target-port 80 \
    --ingress external

az containerapp browse --resource-group $GROUP_NAME --name $CONTAINER_APP_NAME

Получение журналов диагностики с помощью Log Analytics

Примечание.

Конфигурация Log Analytics необходима при установке расширения "Приложения контейнеров" для просмотра диагностических сведений. Если расширение установлено без Log Analytics, пропустите этот шаг.

Перейдите в рабочую область Log Analytics, настроенную с расширением "Приложения контейнеров", а затем выберите журналы в области навигации слева.

Выполните приведенный ниже пример запроса, чтобы отобразить журналы за последние 72 часа.

Если при выполнении запроса возникает ошибка, повторите попытку через 10–15 минут. Может возникнуть задержка для Log Analytics, чтобы начать получение журналов из приложения.

let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"

Журналы приложений для всех приложений, размещенных в кластере Kubernetes, ведутся в рабочей области Log Analytics в пользовательской таблице журналов ContainerAppConsoleLogs_CL.

  • Log_s содержит журналы приложений для данного расширения "Приложения контейнеров"
  • AppName_s содержит имя приложения-контейнера. Помимо журналов, записываемых с помощью кода приложения, столбец Log_s также содержит журналы при запуске и завершении работы контейнера.

Дополнительные сведения о запросах к журналам см. в статье о начале работы с Kusto.

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