Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial, implementas una aplicación de contenedor en un entorno conectado de Container Apps existente en un clúster de Kubernetes habilitado con Azure Arc. Luego verificas el provisionamiento, el DNS, el ingreso, la respuesta de la aplicación y los registros.
- Recuperar un entorno conectado específico por su nombre.
- Crea una aplicación contenedor con entrada externa.
- Verificar la revisión de la aplicación y el nombre de dominio completo.
- Envía una solicitud a la aplicación.
- Consulta los registros de aplicaciones en Log Analytics, si está configurado.
- Elimina la aplicación del tutorial.
Requisitos previos
Antes de empezar, verifica los siguientes requisitos:
- Un entorno conectado creado al completar Habilitar Azure Container Apps en Kubernetes con Azure Arc habilitado.
- Acceso con CLI de Azure a la suscripción que contiene el entorno conectado.
- Permiso de Azure para crear aplicaciones contenedor en el grupo de recursos objetivo y en el entorno conectado.
- El grupo de recursos y el nombre del entorno conectado.
- Acceso a red y DNS desde tu estación de trabajo hasta la dirección de entrada del entorno conectado.
- Permiso opcional para consultar el espacio de trabajo de Log Analytics configurado durante la instalación de la extensión.
Antes de desplegar una aplicación de producción, revisa Azure Container Apps en Azure Arc. Si la aplicación no se aprovisiona o no se vuelve accesible, consulta Solucionar problemas de Azure Container Apps en Kubernetes habilitado para Azure Arc.
Añadir la extensión CLI de Azure
Inicie el entorno de Bash en Azure Cloud Shell.
A continuación, añade la extensión necesaria de CLI de Azure.
az extension add --name containerapp --upgrade --yes
Crea un grupo de recursos para la aplicación
La app contenedor puede usar un grupo de recursos diferente al entorno conectado. Establece el grupo de recursos de la aplicación y la región de Azure utilizada para almacenar sus metadatos de recursos. El contenedor de aplicación se ejecuta en el clúster Kubernetes asociado al entorno conectado.
APP_RESOURCE_GROUP="my-container-apps-resource-group"
AZURE_LOCATION="eastus"
az group create --name $APP_RESOURCE_GROUP --location $AZURE_LOCATION
Obtén el entorno conectado
Establezca el grupo de recursos y el nombre del entorno conectado:
CONNECTED_ENVIRONMENT_RESOURCE_GROUP="<CONNECTED_ENVIRONMENT_RESOURCE_GROUP>"
CONNECTED_ENVIRONMENT_NAME="<CONNECTED_ENVIRONMENT_NAME>"
Recupera ese entorno conectado específico y verifica que esté listo:
CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env show \
--resource-group $CONNECTED_ENVIRONMENT_RESOURCE_GROUP \
--name $CONNECTED_ENVIRONMENT_NAME \
--query id \
--output tsv)
az containerapp connected-env show \
--resource-group $CONNECTED_ENVIRONMENT_RESOURCE_GROUP \
--name $CONNECTED_ENVIRONMENT_NAME \
--query "{Id:id,State:properties.provisioningState,Domain:properties.defaultDomain}" \
--output yaml
Continúa solo cuando State sea Succeeded.
Crea y verifica la app
Cree la aplicación de ejemplo:
CONTAINER_APP_NAME="my-container-app"
az containerapp create \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--environment $CONNECTED_ENVIRONMENT_ID \
--environment-type connected \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external
Espera a que el aprovisionamiento tenga éxito:
CONTAINER_APP_ID=$(az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query id \
--output tsv)
az resource wait --ids $CONTAINER_APP_ID --created --timeout 600
az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query "{State:properties.provisioningState,Revision:properties.latestReadyRevisionName,FQDN:properties.configuration.ingress.fqdn}" \
--output yaml
APP_FQDN=$(az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query properties.configuration.ingress.fqdn \
--output tsv)
Continúa solo cuando State es Succeeded, Revision no está vacío y FQDN contiene el dominio del entorno conectado. Prueba el DNS y la respuesta de la aplicación desde una red que puede llegar a la dirección de entrada del entorno conectado:
nslookup $APP_FQDN
curl --fail --show-error "https://$APP_FQDN"
También puedes abrir la aplicación en un navegador:
az containerapp browse \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME
Si el DNS no resuelve la dirección, la solicitud agota el tiempo de espera o la respuesta no se realiza correctamente, consulte No se puede acceder a la entrada de la aplicación.
Obtención de registros de diagnóstico con Log Analytics
Nota:
Esta sección solo se aplica cuando configuras Log Analytics durante la instalación de la extensión Contenedores de Apps. Si no configuraste Log Analytics, sáltate esta sección.
Abre el espacio de trabajo de Log Analytics configurado para la extensión de Container Apps y selecciona Registros. Ejecuta la siguiente consulta para mostrar los registros de las últimas 72 horas. La ingestión inicial puede durar entre 10 y 15 minutos.
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_scontiene mensajes de registro de aplicaciones y mensajes del ciclo de vida del contenedor. -
ContainerAppName_sidentifica la aplicación contenedora. Este campo es utilizado por la consulta anterior.
Puede obtener más información sobre las consultas de registro en Introducción a Kusto.
Limpia la aplicación del tutorial
Elimina la aplicación contenedora de ejemplo:
az containerapp delete \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--yes
Si creaste el grupo de recursos de aplicaciones solo para este tutorial y no contiene otros recursos, elimíralo.
az group delete --name $APP_RESOURCE_GROUP --yes --no-wait
No elimines el entorno conectado, la ubicación personalizada, la extensión o el clúster conectado porque otras aplicaciones pueden compartir estos recursos.