Руководство по созданию приложения-контейнера Azure в Kubernetes с поддержкой Azure Arc (предварительная версия)
В этом руководстве вы создадите приложение-контейнер для кластера Kubernetes с поддержкой Azure Arc (предварительная версия) и научитесь:
- Создание приложения-контейнера в Azure Arc
- Просмотр диагностика приложения
Необходимые компоненты
Прежде чем приступить к созданию приложения-контейнера, сначала необходимо настроить кластер Kubernetes с поддержкой Azure Arc для запуска приложений контейнеров Azure.
Добавление расширений Azure CLI
Откройте среду Bash в Azure 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.