Compartir a través de


Escenarios y recursos de red virtual

Importante

Si implementa el grupo de contenedores en una red virtual, debe usar una puerta de enlace NAT para la conectividad saliente. Esta es la única configuración admitida para la conectividad saliente del grupo de contenedores en una red virtual. Consulte Configuración de una puerta de enlace NAT para la dirección IP estática para el tráfico saliente desde un grupo de contenedores para obtener más información sobre cómo configurarla.

Azure Virtual Network proporciona acceso de red seguro y privado a los recursos locales y de Azure. Al implementar grupos de contenedores en una red virtual de Azure, los contenedores pueden comunicarse de forma segura con otros recursos de la red virtual.

Este artículo proporciona información general sobre escenarios, limitaciones y recursos de red virtual. Puede encontrar ejemplos de implementación mediante la CLI de Azure en Implementación de instancias de contenedor en una red virtual de Azure.

Importante

La implementación del grupo de contenedores en una red virtual está disponible con carácter general para contenedores de Linux y Windows en la mayoría de las regiones donde Azure Container Instances está disponible. Para obtener más información, consulte Límites de disponibilidad y cuota de recursos.

Escenarios

Los grupos de contenedores implementados en una red virtual de Azure permiten escenarios como:

  • Comunicación directa entre grupos de contenedores en la misma subred.
  • Envíe la salida de la carga de trabajo orientada a tareas desde las instancias de contenedor a una base de datos de la red virtual.
  • Recupere el contenido de las instancias de contenedor de un punto de conexión de servicio en la red virtual.
  • Habilite la comunicación de contenedores con recursos locales a través de una puerta de enlace de VPN o ExpressRoute.
  • Integración con Azure Firewall para identificar el tráfico saliente que se origina en el contenedor.
  • Resuelva los nombres mediante el DNS interno de Azure para la comunicación con los recursos de Azure en la red virtual, como las máquinas virtuales.
  • Use reglas de NSG para controlar el acceso de contenedor a subredes u otros recursos de red.
  • Implemente una aplicación en contenedor escalable mediante Azure Container Instances (ACI) y distribuya el tráfico entrante uniformemente entre varios grupos de contenedores mediante Azure Standard Load Balancer.

Escenarios de red no admitidos

  • Emparejamiento de redes virtuales globales: no se admite el emparejamiento global (conexión de redes virtuales entre regiones de Azure).
  • Etiqueta de dirección IP o DNS pública: los grupos de contenedores implementados en una red virtual no son compatibles actualmente con la exposición directa en Internet de contenedores con una dirección IP pública o un nombre de dominio completo.
  • Identidad administrada con Virtual Network en regiones de Azure Government: la identidad administrada con funcionalidades de red virtual no se admite en regiones de Azure Government

Otras limitaciones

  • Para implementar grupos de contenedores en una subred, la subred no puede contener otros tipos de recursos. Quite todos los recursos existentes de una subred existente antes de implementar grupos de contenedores en ella o cree una nueva subred.
  • Para implementar grupos de contenedores en una subred, tanto esa subred como el grupo de contenedores deberán residir en la misma suscripción de Azure.
  • Debido a los recursos de red adicionales que intervienen, las implementaciones en una red virtual suelen ser más lentas que las de una instancia de contenedor estándar.
  • Las conexiones salientes al puerto 25 y 19390 no se admiten en este momento. El puerto 19390 debe abrirse en el firewall para conectarse a ACI desde Azure Portal cuando los grupos de contenedores se implementan en redes virtuales.
  • Para las conexiones entrantes, el firewall también debe permitir todas las direcciones IP dentro de la red virtual.
  • Si va a conectar el grupo de contenedores a una cuenta de Azure Storage, debe agregar un punto de conexión de servicio a ese recurso.
  • En este momento, no se admiten direcciones IPv6.
  • En función del tipo de suscripción, determinados puertos podrían bloquearse.
  • Las instancias de contenedor no leen ni heredan la configuración de DNS de una red virtual asociada. La configuración de DNS debe establecerse explícitamente para las instancias de contenedor.

Implementación de grupos de contenedores en una red virtual

Hay tres recursos de Azure Virtual Network necesarios para implementar grupos de contenedores en una red virtual: la propia red virtual, una subred delegada dentro de la red virtual y un perfil de red.

Red de área virtual

Una red virtual define el espacio de direcciones en el que crear una o varias subredes. A continuación, implemente los recursos de Azure (por ejemplo, los grupos de contenedores) en las subredes de la red virtual.

Subred (delegada)

Las subredes segmentan la red virtual en espacios de direcciones independientes utilizables por los recursos de Azure que coloque en ellos. Crea una o varias subredes dentro de una red virtual.

La subred que usa para los grupos de contenedores puede contener solo grupos de contenedores. Antes de implementar un grupo de contenedores en una subred, debe delegar explícitamente la subred antes del aprovisionamiento. Una vez delegada, la subred se puede usar solo para grupos de contenedores. Si intenta implementar recursos distintos de grupos de contenedores en una subred delegada, se produce un error en la operación.

Conectividad saliente

La puerta de enlace NAT debe configurarse con una dirección IP pública para que el tráfico saliente de los grupos de contenedores pase a través de esa dirección IP. Esto también permite a los clientes usar direcciones IP etiquetadas por el servicio o tener reglas de NSG adecuadas.

Use el siguiente inicio rápido: Creación de una puerta de enlace NAT para crear una puerta de enlace NAT.

Perfil de red

Importante

Los perfiles de red han quedado en desuso desde la versión 2021-07-01 de la API. Si usa esta versión o una versión más reciente, omita los pasos y las acciones relacionados con los perfiles de red.

Un perfil de red es una plantilla de configuración de red para los recursos de Azure. Especifica determinadas propiedades de red para el recurso, por ejemplo, la subred en la que debe implementarse. La primera vez que usa el comando az container create para implementar un grupo de contenedores en una subred (y, por tanto, en una red virtual), Azure crea un perfil de red para usted. A continuación, puede usar ese perfil de red para implementaciones futuras en la subred.

Para usar una plantilla de Resource Manager, el archivo YAML o un método de programación para implementar un grupo de contenedores en una subred, deberá proporcionar el identificador de recurso de Resource Manager completo de un perfil de red. Puede usar un perfil que creó previamente mediante az container create o bien crear un perfil mediante una plantilla de Resource Manager (consulte el ejemplo de plantilla y la referencia). Para obtener el identificador de un perfil creado anteriormente, use el comando az network profile list.

En el diagrama siguiente se muestran varios grupos de contenedores implementados en una subred delegada en Azure Container Instances. Una vez implemente un grupo de contenedores en una subred, puede implementar más grupos de contenedores en él si especifica el mismo perfil de red.

Grupos de contenedores dentro de una red virtual

Implementación de grupos de contenedores con Azure Standard Load Balancer

Los clientes pueden implementar aplicaciones en contenedores escalables mediante Azure Container Instances y distribuir el tráfico entrante uniformemente entre varios grupos de contenedores mediante Azure Standard Load Balancer.

Importante

Para aprovechar las funcionalidades de equilibrio de carga, el uso de ARM, Bicep, Terraform, la CLI o PowerShell es necesario para establecer subnet.id/name.

Prerrequisitos

Los clientes deben crear un equilibrador de carga público o interno con la configuración de IP de front-end correspondiente, sondeos de estado, reglas de equilibrio de carga y grupos de back-end según lo requiera la carga de trabajo.

Ejemplo: Adición de instancias de ACI a backendpool mediante la CLI de Azure

az network lb address-pool update -g MyResourceGroup --lb-name MyLb -n MyAddressPool --vnet MyVnetResource --backend-addresses "[{name:ACI-Instance1,ip-address:10.0.0.5,subnet:subnetName},{name:ACI-Instance2,ip-address:10.0.0.6,subnet:subnetName},{name:ACI-Instance3,ip-address:10.0.0.7,subnet:subnetName}]"

Ejemplo: Adición de instancias de ACI a backendpool mediante PowerShell

$vnetName = "vnetname"
$subnetName = "ACI subnet name"
$resourceGroup = "rg name"
$loadBalancerName = "LB Name"

$virtualNetwork = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroup
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $virtualNetwork
$loadBalancer = Get-AzLoadBalancer -ResourceGroupName $resourceGroup -Name $loadBalancerName
$ip1 = New-AzLoadBalancerBackendAddressConfig -IpAddress "10.0.0.5" -Name "ACI-Instance1" -SubnetId $subnet.Id
$ip2 = New-AzLoadBalancerBackendAddressConfig -IpAddress "10.0.0.6" -Name "ACI-Instance2" -SubnetId $subnet.Id
$ip3 = New-AzLoadBalancerBackendAddressConfig -IpAddress "10.0.0.7" -Name "ACI-Instance3" -SubnetId $subnet.Id
$backendPool = $loadBalancer.BackendAddressPools[0]
$backendPool.LoadBalancerBackendAddresses.Add($ip1)
$backendPool.LoadBalancerBackendAddresses.Add($ip2)
$backendPool.LoadBalancerBackendAddresses.Add($ip3)
Set-AzLoadBalancerBackendAddressPool -InputObject $backendPool

Pasos siguientes