Proporcionar una red virtual a un entorno Azure Container Apps
En el siguiente ejemplo se muestra cómo crear un entorno de Container Apps en una red virtual (VNet) 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.
- Busque Aplicaciones de contenedor en la barra de búsqueda superior.
- Busque Aplicaciones de contenedor en los resultados de la búsqueda.
- Seleccione el botón Crear.
Pestaña Aspectos básicos
En la pestaña Aspectos básicos, realice las acciones siguientes.
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. Origen de implementación Seleccione Imagen de contenedor.
Creación de un entorno
A continuación, cree un entorno para la aplicación de contenedor.
Seleccione la región apropiada.
Configuración Valor Region Seleccione Centro de EE. UU. En el campo Create Container App environment (Crear entorno de aplicaciones de contenedor), seleccione el vínculo Create new (Crear nuevo).
En la página Crear entorno de Container Apps, en la pestaña Aspectos básicos, escriba los siguientes valores:
Configuración Value Nombre del entorno Escriba my-environment. Tipo de entorno Seleccione Perfiles de carga de trabajo. Redundancia de zona Seleccione Deshabilitado Seleccione la pestaña Supervisión para crear un área de trabajo de Log Analytics.
Seleccione Azure Log Analytics como Destino de registros.
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 ha rellenado previamente con Centro de EE. UU. de forma automática.
Seleccione Aceptar.
También tiene la opción de implementar un DNS privado para el entorno de Container Apps. Para más información, consulte Crear y configurar de una zona DNS privada de Azure.
Creación de una red virtual
Nota:
Para utilizar una VNet con Container Apps, la VNet debe tener una subred dedicada con un rango CIDR de /23
o mayor cuando se utiliza el entorno de sólo consumo, o un rango CIDR de /27
o mayor cuando se utiliza el entorno de perfiles de carga de trabajo. Para obtener más información sobre el ajuste de tamaño de subred, consulte la introducción a la arquitectura de red.
Seleccione la pestaña Redes.
Seleccione Sí junto a Use your own virtual network (Usar su propia red virtual).
Junto al cuadro Red virtual, seleccione el vínculo Crear nuevo y escriba los siguientes valores.
Configuración Value Nombre Escriba my-custom-vnet. Seleccione el botón Aceptar.
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. Seleccione el botón Aceptar.
En Dirección IP virtual, seleccione Externo para un entorno externo o Interno para un entorno interno.
Seleccione Crear.
Implementación de la aplicación contenedora
En la parte inferior de la página, seleccione Revisar y crear.
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.
Seleccione Crear.
Se muestra una página con el mensaje Implementación en curso. Una vez completada correctamente la implementación, verá el mensaje: Se completó la implementación.
Requisitos previos
- Cuenta de Azure con una suscripción activa.
- Si no tiene ninguna, puede crear una gratis.
- Instale la CLI de Azure versión 2.28.0 o superior.
Configurar
Para iniciar sesión en Azure desde la CLI, ejecute el siguiente comando y siga las indicaciones para completar el proceso de autenticación.
az login
Para asegurarse de que ejecuta la versión más reciente de la CLI, ejecute el comando de actualización.
az upgrade
Luego, instale o actualice la extensión de Azure Container Apps para la CLI.
Si recibe errores sobre los parámetros que faltan al ejecutar az containerapp
comandos en la CLI de Azure o cmdlets del Az.App
módulo en Azure PowerShell, asegúrese de que tiene instalada la versión más reciente de la extensión Azure Container Apps.
az extension add --name containerapp --upgrade
Nota:
A partir de mayo de 2024, las extensiones de la CLI de Azure ya no habilitan las características en versión preliminar de forma predeterminada. Para acceder a las características de la versión preliminar de Container Apps, instale la extensión Container Apps con --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Ahora que la extensión o módulo actualizado está instalado, registre los espacios de nombre Microsoft.App
y Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Establecimiento de variables de entorno
Establezca las siguientes variables de entorno. Reemplace <PLACEHOLDERS>
por valores propios:
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
Creación de un grupo de recursos de Azure
Cree un grupo de recursos para organizar los servicios relacionados con la implementación de la aplicación contenedora.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
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 para asociarla al entorno de Container Apps. La red virtual debe tener una subred disponible para la implementación del entorno.
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/23
Al usar el entorno de perfiles de carga de trabajo, debe actualizar la red virtual para delegar la subred a Microsoft.App/environments
. Esta delegación no es necesaria para el entorno de solo consumo.
az network vnet subnet update \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_NAME \
--name infrastructure-subnet \
--delegations Microsoft.App/environments
Con la red virtual creada, ahora puede consultar el id. de 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 red virtual personalizada.
Para crear el entorno, ejecute el siguiente comando. Para crear un entorno interno, agregue --internal-only
.
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION" \
--infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET
En la tabla siguiente se describen los parámetros usados con containerapp env create
.
Parámetro | Descripción |
---|---|
name |
Nombre del entorno de Container Apps. |
resource-group |
Nombre del grupo de recursos. |
logs-workspace-id |
(Opcional) El id. de un área de trabajo de Log Analytics existente. Si se omite, se crea un área de trabajo automáticamente. |
logs-workspace-key |
Secreto de cliente de Log Analytics. Obligatorio si usa un área de trabajo existente. |
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. |
internal-only |
(Opcional) El entorno no usa una dirección IP estática pública, solo las direcciones IP internas disponibles en la red virtual personalizada. (Necesita un identificador de recurso de subred de infraestructura). |
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 al usar solo el Entorno de 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
ydocker-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 el my-container-apps grupo de recursos. Esto elimina la instancia de Azure Container Apps y todos los servicios asociados. También elimina el grupo de recursos que el servicio Container Apps ha creado automáticamente y 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
Recursos adicionales
- Para usar la entrada de ámbito de red virtual, debe configurar DNS.