Tutorial: Creación de una instancia de Azure Container Apps en Kubernetes habilitado para Azure Arc (versión preliminar)
En este tutorial, creará una aplicación de contenedor en un clúster de Kubernetes habilitado para Azure Arc (versión preliminar) y aprenderá a:
- Creación de una aplicación de contenedor en Azure Arc
- Ver los diagnósticos de la aplicación
Requisitos previos
Antes de pasar a crear una aplicación de contenedor, primero debe configurar un clúster de Kubernetes habilitado para Azure Arc para ejecutar Azure Container Apps.
Adición de extensiones de la CLI de Azure
Inicie el entorno de Bash en Azure Cloud Shell.
A continuación, agregue las extensiones de la CLI de Azure necesarias.
Advertencia
El comando siguiente instala una extensión de Container Apps personalizada que no se puede usar con el servicio en la nube pública. Debe desinstalar la extensión si vuelve a la nube pública de Azure.
az extension add --upgrade --yes --name customlocation
az extension add --name containerapp --upgrade --yes
Crear un grupo de recursos
Cree un grupo de recursos para los servicios creados en este tutorial.
GROUP_NAME="my-container-apps-resource-group"
az group create --name $GROUP_NAME --location eastus
Obtención de información de ubicación personalizada
Obtenga el siguiente grupo de ubicaciones, nombre e identificador del administrador del clúster. Vea Creación de una ubicación personalizada para más información.
CUSTOM_LOCATION_GROUP="<RESOURCE_GROUP_CONTAINING_CUSTOM_LOCATION>"
CUSTOM_LOCATION_NAME="<NAME_OF_CUSTOM_LOCATION>"
Obtenga el id. de la ubicación personalizada.
CUSTOM_LOCATION_ID=$(az customlocation show \
--resource-group $CUSTOM_LOCATION_GROUP \
--name $CUSTOM_LOCATION_NAME \
--query id \
--output tsv)
Recuperación del id. del entorno conectado
Ahora que tiene el id. de la ubicación personalizada, puede consultar el entorno conectado.
Un entorno conectado es en gran medida el mismo que un entorno estándar de Container Apps, pero el clúster de Kubernetes habilitado para Arc subyacente controla las restricciones de red.
CONTAINER_APP_NAME="my-container-app"
CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env list --custom-location $CUSTOM_LOCATION_ID -o tsv --query '[].id')
Creación de una aplicación
El ejemplo siguiente crea una aplicación 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
Obtención de registros de diagnóstico con Log Analytics
Nota:
Se necesita una configuración de Log Analytics a medida que instale la extensión Container Apps para ver la información de diagnóstico. Si instaló la extensión sin Log Analytics, omita este paso.
Vaya al área de trabajo de Log Analytics configurada con la extensión de Container Apps y, después, seleccione Registros en el panel de navegación de la izquierda.
Ejecute la consulta de ejemplo siguiente para mostrar los registros de las últimas 72 horas.
Si se produce un error al ejecutar una consulta, inténtelo de nuevo en 10-15 minutos. Puede haber un retraso para que Log Analytics empiece a recibir registros de la aplicación.
let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"
Los registros de aplicación de todas las aplicaciones hospedadas en el clúster de Kubernetes se registran en el área de trabajo de Log Analytics en la tabla de registros personalizada denominada ContainerAppConsoleLogs_CL
.
- Log_s contiene registros de aplicación para una extensión de Container Apps determinada
- AppName_s contiene el nombre de la aplicación contenedora. Además de los registros que escribe con el código de la aplicación, la columna Log_s también contiene registros sobre el inicio y el apagado del contenedor.
Puede obtener más información sobre las consultas de registro en Introducción a Kusto.