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.
Aunque puede enrutar el tráfico de salida a través de un Azure Load Balancer, hay limitaciones en el número de flujos de tráfico saliente que puede establecer. Azure NAT Gateway permite hasta 64 512 flujos de tráfico UDP y TCP salientes por dirección IP con un máximo de 16 direcciones IP. Hay tres tipos de salida que admiten la puerta de enlace NAT : managedNATGatewayV2 (versión preliminar), managedNATGatewayy userAssignedNATGateway.
En un modelo de puerta de enlace NAT administrada, AKS administra la puerta de enlace NAT para proporcionar conectividad saliente para los nodos del clúster. AKS admite dos opciones de puerta de enlace NAT administradas: la más reciente managedNATGatewayV2 y la original managedNATGateway.
managedNATgatewayV2 usa la puerta de enlace NAT de StandardV2, que es con redundancia de zona de forma predeterminada, lo que proporciona conectividad de salida continua incluso si una zona de disponibilidad deja de funcionar. A diferencia de la puerta de enlace NAT estándar, no es necesario especificar una zona; la redundancia de zona se incorpora automáticamente. La puerta de enlace NAT de StandardV2 también admite IPv6, un mayor rendimiento y registros de flujo. Para obtener más detalles, consulte SKU de puerta de enlace NAT StandardV2.
Importante
El managedNATGatewayV2 tipo de salida se encuentra actualmente en versión preliminar.
Consulte los términos Supplementales de uso para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en versión beta, versión preliminar o, de lo contrario, aún no se han publicado en disponibilidad general.
userAssignedNATGateway es un recurso de puerta de enlace NAT administrada por el cliente que se configura independientemente de AKS y es necesario cuando se usan redes virtuales propias.
En este artículo se muestra cómo crear un clúster de Azure Kubernetes Service (AKS) con una puerta de enlace NAT administrada y una puerta de enlace NAT asignada por el usuario para el tráfico de salida. También muestra cómo deshabilitar OutboundNAT en Windows.
Antes de empezar
- Asegúrese de que usa la versión más reciente de CLI de Azure.
- Asegúrese de que usa la versión 1.20.x o posterior de Kubernetes.
- La puerta de enlace NAT administrada no es compatible con las redes virtuales personalizadas.
Importante
En clústeres no privados, el tráfico del clúster del servidor de API se enruta y procesa a través del tipo de salida de clústeres. Para evitar que el tráfico del servidor de API se procese como tráfico público, considere la posibilidad de usar un clúster privado o consulte la característica Integración con red virtual del servidor de API.
Creación de un clúster de AKS con managedNATgatewayV2
- Cree un clúster de AKS con una puerta de enlace NAT de StandardV2 administrada mediante el comando
az aks createcon los parámetros--outbound-type managedNATGateway,--nat-gateway-outbound-ips,--nat-gateway-outbound-ip-prefixes,--nat-gateway-managed-outbound-ip-count,--nat-gateway-managed-outbound-ipv6-county--nat-gateway-idle-timeout. - Al configurar direcciones IP de salida para una
managedNATgatewayV2, debe usar uno de los enfoques siguientes — no puede usar direcciones IP de salida definidas por el cliente y administradas por Azure:-
Direcciones IP administradas de Azure — use
--nat-gateway-managed-ip-outbound-county/o--nat-gateway-managed-outbound-ipv6-countpara que Azure asigne y administre automáticamente las direcciones IP públicas salientes en su nombre. -
Direcciones IP definidas por el cliente : use
--nat-gateway-outbound-ipso--nat-gateway-outbound-ip-prefixespara traer sus propias direcciones IP o prefijos públicos aprovisionados previamente, lo que le proporciona control total sobre las direcciones específicas usadas para el tráfico saliente. StandardV2 NAT Gateway requiere el uso de nuevas direcciones IP públicas de StandardV2. Las direcciones IP públicas de SKU estándar existentes no funcionan con standardV2 NAT Gateway.
-
Direcciones IP administradas de Azure — use
En la tabla siguiente se describen todos los parámetros IP de salida y cuándo usarlos:
| Parámetro | Entrada | Versión IP | Quién administra las direcciones IP públicas |
|---|---|---|---|
--nat-gateway-managed-outbound-ip-count |
Valor en el intervalo de [1, 16]. Número deseado de IPv4s de salida para la conexión saliente de la puerta de enlace NAT. | IPv4 | Azure |
--nat-gateway-managed-outbound-ipv6-count |
Valor en el intervalo de [1, 16]. Número deseado de direcciones IPv6 salientes para la conexión de salida del gateway NAT. | IPv6 | Azure |
--nat-gateway-outbound-ips |
IDs de recursos IP públicos separados por comas para la conexión de salida de la pasarela NAT. | IPv4 o IPv6 | Cliente |
--nat-gateway-outbound-ip-prefixes |
ID de recurso con prefijo de IP pública separada por comas para la conexión de salida de la pasarela NAT. | IPv4 o IPv6 | Cliente |
managedNATGatewayV2 el tipo saliente está actualmente en Vista previa; para usar este tipo saliente, se necesitan los siguientes pasos para instalar la aks-preview extensión de la CLI de Azure y registrar la ManagedNATGatewayV2Preview bandera de funcionalidad.
Importante
Las características en versión preliminar de AKS están disponibles a elección del usuario y en régimen de autoservicio. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y garantía limitada. Las versiones preliminares de AKS cuentan con soporte parcial por parte del servicio al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:
- Directivas de soporte técnico de AKS
- preguntas más frecuentes sobre Soporte técnico de Azure
Instale o actualice la extensión de CLI de Azure versión preliminar mediante el comando
az extension addoaz extension update.La versión mínima de la extensión aks-preview CLI de Azure es
20.0.0b1.# Install the aks-preview extension az extension add --name aks-preview # Update the extension to make sure you have the latest version installed az extension update --name aks-previewRegistro de la marca de característica
ManagedNATGatewayV2PreviewRegistre la marca de características de
ManagedNATGatewayV2Previewmediante el comandoaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Compruebe el registro correcto mediante el
az feature showcomando . El registro tarda unos minutos en completarse.az feature show --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Una vez que la característica muestre
Registered, actualice el registro del proveedor de recursosMicrosoft.ContainerServicemediante el comandoaz provider register.Los siguientes comandos crean el grupo de recursos requeridos, la IP pública y los recursos prefijo IP público para acoplarse a la pasarela NAT, y el clúster AKS con una pasarela NAT StandardV2 gestionada.
Cree un grupo de recursos con el comando
az group create.export RANDOM_SUFFIX=$(openssl rand -hex 3) export MY_RG="myResourceGroup$RANDOM_SUFFIX" export MY_AKS="myNatV2Cluster$RANDOM_SUFFIX" export MY_IP="myNatOutboundIP$RANDOM_SUFFIX" export MY_IP_PREFIX="myNatOutboundIPPrefix$RANDOM_SUFFIX" az group create --name $MY_RG --location "eastus2"Cree una dirección IP pública IPv4 redundante de zona y un prefijo de IP pública usando el comando
az network public-ip create. Almacene$MY_IPy$MY_IP_PREFIXpara usar como direcciones IP de salida para la puerta de enlace NAT administrada StandardV2.export MY_IP_ID=$(az network public-ip create \ --resource-group $MY_RG \ --name $MY_IP \ --location eastus2 \ --sku StandardV2 \ --allocation-method Static \ --version IPv4 \ --zone 1 2 3 \ --query id \ --output tsv) export MY_IP_PREFIX_ID=$(az network public-ip prefix create \ --resource-group $MY_RG \ --name $MY_IP_PREFIX \ --location eastus2 \ --length 31 \ --sku StandardV2 \ --version IPv4 \ --zone 1 2 3 \ --query id \ --output tsv)Cree el clúster de AKS y haga referencia a la dirección IP pública (
$MY_IP_ID) y al prefijo de DIRECCIÓN IP pública ($MY_IP_PREFIX_ID).az aks create \ --resource-group $MY_RG \ --name $MY_AKS \ --node-count 3 \ --outbound-type managedNATGatewayV2 \ --nat-gateway-outbound-ips $MY_IP_ID \ --nat-gateway-outbound-ip-prefixes $MY_IP_PREFIX_ID \ --nat-gateway-idle-timeout 4 \ --generate-ssh-keys
Actualice las direcciones IP de salida, los prefijos IP de salida, el recuento de direcciones IP de salida administradas o el tiempo de espera de inactividad mediante el comando az aks update con el parámetro --nat-gateway-outbound-ips, --nat-gateway-outbound-ip-prefixes, --nat-gateway-managed-outbound-count, --nat-gateway-managed-outbound-ipv6-count o --nat-gateway-idle-timeout. Un managedNATGatewayV2 no se puede actualizar para cambiar entre direcciones IP de salida definidas por el cliente y gestionadas, después de su creación. La configuración ip de salida se determina cuando se crea inicialmente la puerta de enlace NAT de StandardV2 y permanece inmutable.
Creación de un clúster de AKS con managedNATgateway
Cree un clúster de AKS con una puerta de enlace NAT estándar administrada mediante el
az aks createcomando con--outbound-type managedNATGateway.--nat-gateway-managed-outbound-ip-count, y--nat-gateway-idle-timeoutparámetros. Si desea que la puerta de enlace NAT funcione fuera de una zona de disponibilidad específica, especifique la zona mediante--zones.Un recurso de puerta de enlace NAT administrado no se puede usar en varias zonas de disponibilidad. Se aconseja utilizar
managedNATgatewayV2para la conectividad de salida con redundancia de zona.Si no se especifica ninguna zona al crear una puerta de enlace NAT administrada, la puerta de enlace NAT se implementa en "ninguna zona" de manera predeterminada. Cuando la puerta de enlace NAT se coloca en ninguna zona, Azure coloca el recurso en una zona automáticamente. Para más información sobre el modelo de implementación no zonal, consulte Puerta de enlace NAT no zonal.
Creación de un clúster de AKS con userAssignedNatGateway
Esta configuración requiere traer una red propia (a través de Azure CNI) y que la puerta de enlace NAT esté preconfigurada en la subred. Se soportan tanto las pasarelas NAT Standard como StandardV2 para esto outbound-type. Los comandos siguientes crean los recursos necesarios para implementar un recurso de puerta de enlace NAT standardV2 para el clúster de AKS.
Cree un grupo de recursos con el comando
az group create.export RANDOM_SUFFIX=$(openssl rand -hex 3) export MY_RG="myResourceGroup$RANDOM_SUFFIX" az group create --name $MY_RG --location southcentralusCree una identidad administrada para los permisos de red y almacene el identificador en
$IDENTITY_IDpara su uso posterior.export IDENTITY_NAME="myNatClusterId$RANDOM_SUFFIX" export IDENTITY_ID=$(az identity create \ --resource-group $MY_RG \ --name $IDENTITY_NAME \ --location southcentralus \ --query id \ --output tsv)Resultados:
/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNatClusterIdxxxCree una dirección IP pública standardV2 para la puerta de enlace NAT mediante el
az network public-ip createcomando . Una puerta de enlace NAT standardV2 requiere una dirección IP pública standardV2.export PIP_NAME="myNatGatewayPip$RANDOM_SUFFIX" az network public-ip create \ --resource-group $MY_RG \ --name $PIP_NAME \ --location southcentralus \ --allocation-method Static \ --version IPv4 \ --zone 1 2 3 \ --sku standard-v2Cree la puerta de enlace NAT de StandardV2 mediante el
az network nat gateway createcomando .export NATGATEWAY_NAME="myNatGateway$RANDOM_SUFFIX" az network nat gateway create \ --resource-group $MY_RG \ --name $NATGATEWAY_NAME \ --location southcentralus \ --public-ip-addresses $PIP_NAME \ --sku StandardV2 --idle-timeout 4Importante
Para garantizar la redundancia de zona, se recomienda implementar un recurso de puerta de enlace NAT standardV2, que abarca varias zonas de disponibilidad de una región. Esto garantiza la conectividad saliente continua incluso si se produce un error en una sola zona. Para más información sobre la puerta de enlace NAT de StandardV2 y sus ventajas, consulte StandardV2 NAT Gateway. En comparación, un recurso de puerta de enlace NAT estándar proporciona resistencia solo dentro de la zona de disponibilidad en la que se implementa.
Cree una red virtual mediante el comando
az network vnet create.export VNET_NAME="myVnet$RANDOM_SUFFIX" az network vnet create \ --resource-group $MY_RG \ --name $VNET_NAME \ --location southcentralus \ --address-prefixes 172.16.0.0/20Cree una subred en la red virtual mediante la instancia de NAT Gateway y almacene el identificador en
$SUBNET_IDpara su uso posterior.export SUBNET_NAME="myNatCluster$RANDOM_SUFFIX" export SUBNET_ID=$(az network vnet subnet create \ --resource-group $MY_RG \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --address-prefixes 172.16.0.0/22 \ --nat-gateway $NATGATEWAY_NAME \ --query id \ --output tsv)Cree un clúster de AKS mediante la subred con la puerta de enlace NAT y la identidad administrada mediante el comando
az aks create.export AKS_NAME="myNatCluster$RANDOM_SUFFIX" az aks create \ --resource-group $MY_RG \ --name $AKS_NAME \ --location southcentralus \ --network-plugin azure \ --vnet-subnet-id $SUBNET_ID \ --outbound-type userAssignedNATGateway \ --assign-identity $IDENTITY_ID \ --generate-ssh-keys
Deshabilitar OutboundNAT para Windows
Windows OutboundNAT puede causar ciertos problemas de conexión y comunicación con los pods de AKS. Un problema de ejemplo es la reutilización del puerto de nodo. En este ejemplo, Windows OutboundNAT usa puertos para traducir la dirección IP del pod a la dirección IP del host del nodo de Windows, lo que puede provocar una conexión inestable al servicio externo debido a un problema de agotamiento de puertos.
Windows habilita OutboundNAT de forma predeterminada. Ahora puede deshabilitar manualmente OutboundNAT al crear nuevos grupos de agentes de Windows.
Requisitos previos
- Clúster de AKS existente con v1.26 o superior. Si usa la versión 1.25 o anterior de Kubernetes, debe actualizar la configuración de implementación.
Limitaciones
- No se puede establecer el tipo de salida de clúster en LoadBalancer. Puede establecerlo en NAT Gateway o UDR:
- NAT Gateway: NAT Gateway puede controlar automáticamente la conexión NAT y es más eficaz que Standard Load Balancer. Puede incurrir en cargos adicionales con esta opción.
- UDR (UserDefinedRouting):debe tener en cuenta las limitaciones de puerto al configurar reglas de enrutamiento.
- Si necesita cambiar de un equilibrador de carga a una puerta de enlace NAT, puede agregar una puerta de enlace NAT a la red virtual o ejecutar
az aks upgradepara actualizar el tipo de salida.
Nota
UserDefinedRouting tiene las siguientes limitaciones:
- SNAT por Load Balancer (debe usar OutboundNAT predeterminado) tiene "64 puertos en la dirección IP del host".
- SNAT por Azure Firewall (deshabilitar OutboundNAT) tiene 2496 puertos por dirección IP pública.
- SNAT por NAT Gateway (deshabilitar OutboundNAT) tiene 64512 puertos por dirección IP pública.
- Si el intervalo de puertos del Firewall de Azure no es suficiente para tu aplicación, debe usar la puerta de enlace NAT.
- Azure Firewall no realiza SNAT con las reglas de red cuando la dirección IP de destino está en un intervalo de direcciones IP privadas según el IANA RFC 1918 o en un espacio de direcciones compartido según el IANA RFC 6598.
Deshabilitar manualmente OutboundNAT para Windows
Deshabilite manualmente OutboundNAT para Windows al crear nuevos grupos de agentes de Windows mediante el comando
az aks nodepool addcon la marca--disable-windows-outbound-nat.Nota
Puede usar un clúster de AKS existente, pero es posible que tenga que actualizar el tipo de salida y agregar un grupo de nodos para habilitar
--disable-windows-outbound-nat.El comando siguiente agrega un grupo de nodos de Windows a un clúster de AKS existente, deshabilitando OutboundNAT.
export WIN_NODEPOOL_NAME="win$(head -c 1 /dev/urandom | xxd -p)" az aks nodepool add \ --resource-group $MY_RG \ --cluster-name $MY_AKS \ --name $WIN_NODEPOOL_NAME \ --node-count 3 \ --os-type Windows \ --disable-windows-outbound-natResultados:
{ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myNatClusterxxx/agentPools/mynpxxx", "name": "mynpxxx", "osType": "Windows", "provisioningState": "Succeeded", "resourceGroup": "myResourceGroupxxx", "type": "Microsoft.ContainerService/managedClusters/agentPools" }
Pasos siguientes
Para obtener más información sobre Azure NAT Gateway, consulte Azure NAT Gateway.