Proporción de una red virtual a un entorno externo de Azure Container Apps

En el ejemplo siguiente se muestra cómo crear un entorno de Container Apps en una red virtual existente.

Para empezar, inicie sesión en Azure Portal.

Crear una aplicación de contenedor

Para crear una aplicación contenedora, comience en la página principal de Azure Portal.

  1. Busque Aplicaciones de contenedor en la barra de búsqueda superior.
  2. Busque Aplicaciones de contenedor en los resultados de la búsqueda.
  3. Seleccione el botón Crear.

Pestaña Aspectos básicos

En la pestaña Aspectos básicos, realice las acciones siguientes.

  1. Escriba los siguientes valores en la sección Detalles del proyecto.

    Configuración Acción
    Subscription Seleccione su suscripción a Azure.
    Resource group Seleccione Crear nuevo y escriba my-container-apps.
    Nombre de la aplicación de contenedor Escriba my-container-app.

Creación de un entorno

A continuación, cree un entorno para la aplicación de contenedor.

  1. Seleccione la región apropiada.

    Configuración Valor
    Region Seleccione Centro de EE. UU.
  2. En el campo Create Container App environment (Crear entorno de aplicaciones de contenedor), seleccione el vínculo Create new (Crear nuevo).

  3. En la página Create Container App environment (Crear entorno de aplicaciones de contenedor), en la pestaña Basics (Aspectos básicos), escriba los siguientes valores:

    Configuración Value
    Nombre del entorno Escriba my-environment.
    Tipo de entorno Seleccione Solo consumo.
    Redundancia de zona Seleccione Deshabilitado
  4. Seleccione la pestaña Supervisión para crear un área de trabajo de Log Analytics.

  5. Seleccione Azure Log Analytics como Destino de registros.

  6. Seleccione el vínculo Crear nuevo en el campo Área de trabajo de Log Analytics y escriba los siguientes valores.

    Configuración Value
    Nombre Escriba my-container-apps-logs.

    El campo Ubicación se rellena previamente con Centro de EE. UU . para usted.

  7. Seleccione Aceptar.

Nota:

Puede usar una red virtual existente, pero se requiere una subred dedicada con un intervalo CIDR de /23 o mayor para su uso con aplicaciones de contenedor cuando se usa la arquitectura de solo consumo. Cuando se usa un entorno de perfiles de carga de trabajo, se requiere o /27 mayor. Para más información sobre el ajuste de tamaño de subred, consulte la introducción a la arquitectura de red.

  1. Seleccione la pestaña Redes para crear una red virtual.

  2. Seleccione junto a Use your own virtual network (Usar su propia red virtual).

  3. Junto al cuadro Red virtual, seleccione el vínculo Crear nuevo y escriba los siguientes valores.

    Configuración Value
    Nombre Escriba my-custom-vnet.
  4. Seleccione el botón Aceptar.

  5. Junto al cuadro Subred de infraestructura, seleccione el vínculo Crear nuevo y escriba los siguientes valores:

    Configuración Value
    Nombre de subred Escriba infrastructure-subnet.
    El bloque de direcciones de la red virtual Deje los valores predeterminados.
    El bloque de direcciones de la subred Deje los valores predeterminados.
  6. Seleccione el botón Aceptar.

  7. En IP virtual, seleccione Externa.

  8. Seleccione Crear.

Implementación de la aplicación contenedora

  1. Seleccione Revisar y crear en la parte inferior de la página.

    Si no se encuentran errores, se habilita el botón Crear.

    Si hay errores, todas las pestañas que contengan errores se marcan con un punto rojo. Vaya a la pestaña adecuada. Los campos que contienen un error se resaltan en rojo. Una vez corregidos todos los errores, vuelva a seleccionar Revisar y crear.

  2. Seleccione Crear.

    Se muestra una página con el mensaje Implementación en curso. Una vez completada correctamente la implementación, verá el mensaje: La implementación se ha completado.

Requisitos previos

Configuración

Para empezar, inicie sesión en Azure. Ejecute el siguiente comando y siga las indicaciones para completar el proceso de autenticación.

az login

Luego instale la extensión Azure Container Apps para la CLI.

az extension add --name containerapp --upgrade

Ahora que la extensión o módulo actual está instalado, registre el espacio de nombres Microsoft.App.

Nota:

Los recursos de Azure Container Apps han migrado desde el espacio de nombres Microsoft.Web al espacio de nombres Microsoft.App. Consulte Migración del espacio de nombres de Microsoft.Web a Microsoft.App marzo de 2022 para obtener más detalles.

az provider register --namespace Microsoft.App

Registre el proveedor Microsoft.OperationalInsights para el área de trabajo de Log Analytics de Azure Monitor si no se ha usado antes.

az provider register --namespace Microsoft.OperationalInsights

A continuación, agregue estas variables de entorno:

RESOURCE_GROUP="my-container-apps"
LOCATION="canadacentral"
CONTAINERAPPS_ENVIRONMENT="my-environment"

Con estas variables definidas, puede crear un grupo de recursos para organizar los servicios relacionados con la nueva aplicación de contenedor.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

Con la CLI actualizada y un nuevo grupo de recursos disponible, puede crear un entorno de Container Apps e implementar la aplicación de contenedor.

Creación de un entorno

Un entorno de Azure Container Apps crea un límite seguro alrededor de un grupo de aplicaciones de contenedor. Las aplicaciones de contenedor implementadas en el mismo entorno se implementan en la misma red virtual y escriben registros en la misma área de trabajo de Log Analytics.

Registre el proveedor Microsoft.ContainerService.

az provider register --namespace Microsoft.ContainerService

Declare una variable que contenga el nombre de la red virtual.

VNET_NAME="my-custom-vnet"

Ahora cree una red virtual Azure para asociarla al entorno de Container Apps. La red virtual debe tener una subred disponible para la implementación del entorno.

Nota:

El prefijo de dirección de subred de red requiere un intervalo CIDR mínimo de /23 para su uso con aplicaciones de contenedor cuando se usa la arquitectura de solo consumo. Cuando se usa la arquitectura de perfiles de carga de trabajo, se requiere o /27 mayor. Para más información sobre el ajuste de tamaño de subred, consulte la introducción a la arquitectura de red.

az network vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --location $LOCATION \
  --address-prefix 10.0.0.0/16
az network vnet subnet create \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --address-prefixes 10.0.0.0/21

Con la red virtual creada, puede recuperar el identificador de la subred de infraestructura.

INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name $VNET_NAME --name infrastructure-subnet --query "id" -o tsv | tr -d '[:space:]'`

Por último, cree el entorno de Container Apps mediante la VNET personalizada implementada en los pasos anteriores.

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION" \
  --infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET

En la siguiente tabla se describen los parámetros usados para containerapp env create.

Parámetro Descripción
name Nombre del entorno de Container Apps.
resource-group Nombre del grupo de recursos.
location Ubicación de Azure donde se va a implementar el entorno.
infrastructure-subnet-resource-id Identificador de recurso de una subred para los componentes de infraestructura y los contenedores de aplicaciones de usuario.

Con el entorno creado mediante una red virtual personalizada, ahora puede implementar aplicaciones contenedoras en el entorno.

Configuración opcional

Tiene la opción de implementar un DNS privado y definir intervalos IP de red personalizados para el entorno de Container Apps.

Implementación con un DNS privado

Si desea implementar la aplicación de contenedor con un DNS privado, ejecute los siguientes comandos.

En primer lugar, extraiga información identificable del entorno.

ENVIRONMENT_DEFAULT_DOMAIN=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.defaultDomain --out json | tr -d '"'`
ENVIRONMENT_STATIC_IP=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.staticIp --out json | tr -d '"'`
VNET_ID=`az network vnet show --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --query id --out json | tr -d '"'`

A continuación, configure el DNS privado.

az network private-dns zone create \
  --resource-group $RESOURCE_GROUP \
  --name $ENVIRONMENT_DEFAULT_DOMAIN
az network private-dns link vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --virtual-network $VNET_ID \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN -e true
az network private-dns record-set a add-record \
  --resource-group $RESOURCE_GROUP \
  --record-set-name "*" \
  --ipv4-address $ENVIRONMENT_STATIC_IP \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN

Parámetros de red

Hay tres parámetros de red opcionales que puede definir al llamar a containerapp env create. Use estas opciones cuando tenga una red virtual emparejada con intervalos de direcciones independientes. La configuración explícita de estos intervalos garantiza que las direcciones que usa el entorno de Container Apps no entren en conflicto con otros intervalos de la infraestructura de red.

Debe proporcionar valores para las tres propiedades o ninguna de ellas. Los valores se generan si no se proporcionan.

Parámetro Descripción
platform-reserved-cidr Intervalo de direcciones usado internamente para los servicios de infraestructura de entorno. Debe tener un tamaño entre /23 y /12 cuando se usa la arquitectura de solo consumo
platform-reserved-dns-ip Una dirección IP del intervalo platform-reserved-cidr que se usa para el servidor DNS interno. La dirección no puede ser la primera dirección del intervalo ni la dirección de red. Por ejemplo, si platform-reserved-cidr se establece en 10.2.0.0/16, platform-reserved-dns-ip no puede ser 10.2.0.0 (la dirección de red) ni 10.2.0.1 (la infraestructura se reserva el uso de esta dirección IP). En este caso, la primera dirección IP utilizable para el DNS sería 10.2.0.2.
docker-bridge-cidr Intervalo de direcciones asignado a la red de puente de Docker. Este intervalo debe tener un tamaño entre /28 y /12.
  • Los intervalos de direcciones platform-reserved-cidr y docker-bridge-cidr no pueden estar en conflicto entre sí ni con los intervalos de cualquiera de las subredes proporcionadas. Además, asegúrese de que estos intervalos no entren en conflicto con ningún otro intervalo de direcciones de la red virtual.

  • Si no se proporcionan estas propiedades, la CLI genera automáticamente los valores de intervalo en función del intervalo de direcciones de la red virtual para evitar conflictos de intervalos.

Limpieza de recursos

Si no va a seguir usando esta aplicación, puede eliminar la instancia de Azure Container Apps y todos los servicios asociados quitando el grupo de recursos my-container-apps. Al eliminar este grupo de recursos, también se eliminará el creado automáticamente por el servicio Container Apps que contiene los componentes de red personalizados.

Precaución

El comando siguiente elimina el grupo de recursos especificado y todos los recursos que contiene. Si los recursos que están fuera del ámbito de esta guía existen en el grupo de recursos especificado, también se eliminarán.

az group delete --name $RESOURCE_GROUP

Pasos siguientes