Créer une passerelle NAT managée ou affectée par l’utilisateur pour votre cluster Azure Kubernetes Service (AKS)

S’applique à : ✔️ AKS Automatic ✔️ AKS Standard

Pour la plupart des charges de travail de production, AKS Automatic est l’option par défaut recommandée pour un environnement de production sur AKS. Les clusters automatiques AKS incluent une passerelle NAT managée préconfigurée.

Dans AKS Standard, vous pouvez créer ou configurer une passerelle NAT managée lorsque vous souhaitez une connectivité sortante gérée par AKS pour votre cluster. Pour les scénarios de mise en réseau BYO (bring-your-own), utilisez une passerelle NAT affectée par l’utilisateur.

Bien que vous puissiez router le trafic de sortie via un Azure Load Balancer, il existe des limitations sur le nombre de flux sortants de trafic que vous pouvez avoir. Azure NAT Gateway prend en charge jusqu’à 64 512 flux de trafic UDP sortant et TCP par adresse IP avec un maximum de 16 adresses IP. Deux types de trafic sortant prennent en charge la passerelle NAT : managedNATGateway et userAssignedNATGateway.

Cet article explique comment créer un cluster AKS avec une passerelle NAT managée et une passerelle NAT affectée par l’utilisateur pour le trafic sortant. Il vous montre également comment désactiver OutboundNAT pour Windows.

Remarque

À compter de la version de l’API 2026-06-01, outboundType: managedNATGateway la valeur par défaut est la passerelle NAT Gateway StandardV2 qui s’affiche comme natGatewayProfile.sku: StandardV2 au lieu du type sortant managedNATGatewayV2 utilisé pendant la version préliminaire. Les versions de l’API en préversion de 2026-01-02-preview à 2026-05-02-preview continuent à accepter managedNATGatewayV2 pendant environ un an, ce qui vous donne le temps de passer à managedNATGateway avec un sku explicite. Pour connaître les dates de dépréciation des API en préversion, consultez la documentation AKS Preview API life cycle.

Prérequis

Les clusters automatiques AKS incluent une passerelle NAT managée préconfigurée. Les étapes décrites dans cet article concernent principalement les scénarios de mise en réseau AKS Standard et personnalisés.

  • Vérifiez que vous utilisez la dernière version de Azure CLI.
  • Vérifiez que vous utilisez Kubernetes version 1.20.x ou ultérieure.
  • La passerelle NAT managée n’est pas compatible avec les réseaux virtuels personnalisés.

Important

Dans les clusters non privés, le trafic du cluster du serveur d’API est routé et traité via le type de trafic sortant du cluster. Pour éviter que le trafic du serveur d’API ne soit traité comme du trafic public, envisagez d’utiliser un cluster privé, ou consultez la fonctionnalité Intégration au réseau virtuel du serveur d’API.

Passerelle NAT managée dans AKS

AKS Automatic utilise une passerelle NAT managée dans sa configuration par défaut préconfigurée, prête pour la production. Utilisez cette section si vous utilisez AKS Standard ou si vous devez comprendre comment la passerelle NAT managée se comporte dans un cluster AKS.

La passerelle NAT managée est l’option sortante gérée par AKS. AKS crée et gère la passerelle NAT pour fournir une connectivité sortante pour vos nœuds de cluster.

Utilisez la passerelle NAT managée lorsque vous souhaitez :

  • Connectivité sortante gérée par AKS avec moins de surcharge opérationnelle.
  • Chemin sortant par défaut convivial pour la production.
  • Gestion de sortie plus simple qu’un déploiement de passerelle NAT géré par le client.
  • Modèle de mise en réseau AKS standard sans apporter votre propre ressource de passerelle NAT.

Créer un cluster AKS avec une passerelle NAT Gateway managée

Paramètres IP de sortie

Le tableau suivant décrit chaque paramètre IP sortant et quand l’utiliser :

Paramètre Input Version de l’adresse IP Qui gère les adresses IP publiques
--nat-gateway-managed-outbound-ip-count Valeur dans l'intervalle de [1, 16]. Nombre souhaité d'adresses IPv4 sortantes pour la connexion via la passerelle NAT. IPv4 Azure
--nat-gateway-managed-outbound-ipv6-count Valeur dans l'intervalle de [1, 16]. Nombre souhaité d'adresses IPv6 sortantes pour la connexion sortante d'une passerelle NAT. IPv6 Azure
--nat-gateway-outbound-ips IDs de ressource IP publique, séparés par des virgules, pour la connexion sortante de la passerelle NAT. IPv4 ou IPv6 Client
--nat-gateway-outbound-ip-prefixes Identifiants de ressources de préfixes d’adresses IP publiques, séparés par des virgules, pour la connexion sortante de la passerelle NAT. IPv4 ou IPv6 Client

Choisissez une référence (SKU) de la passerelle NAT managée

À compter de la version 2026-06-01 de l’API, managedNATGateway prend en charge les références SKU StandardV2 et Standard jusqu’à networkProfile.natGatewayProfile.sku. StandardV2 est la valeur par défaut pour les nouveaux clusters dans les régions prises en charge lorsque la requête utilise cette version de l’API ou une version ultérieure. Les demandes qui utilisent une version antérieure de l’API conservent le comportement Standard existant.

Scenario Behavior
Nouveau cluster sans référence SKU spécifiée La valeur par défaut est StandardV2 si disponible. AKS valide la disponibilité régionale avant d’appliquer la valeur par défaut. Dans les régions où StandardV2 n’est pas disponible, AKS utilise Standard.
Cluster standard existant Continue à utiliser cette ressource de passerelle NAT Gateway. La version 2026-06-01 de l’API et les versions ultérieures renvoient la propriété en lecture seule natGatewayProfile.sku en tant que Standard.
Mise à niveau de Standard vers StandardV2 Réglez networkProfile.natGatewayProfile.sku sur StandardV2.
Passer de StandardV2 à Standard Non prise en charge.

La passerelle NAT StandardV2 est recommandée, car elle est redondante interzone par défaut et offre une bande passante et un débit plus élevés. StandardV2 nécessite des adresses IP publiques StandardV2 et des préfixes. Les ressources IP publiques de SKU Standard existantes ne sont pas compatibles avec la passerelle NAT StandardV2. Consultez les principales limitations de la passerelle NAT StandardV2 pour connaître la liste actuelle des régions non prises en charge.

L’exigence d’adresse IP publique StandardV2 s’applique uniquement aux adresses IP sortantes de la passerelle NAT. L’équilibreur de charge managé par AKS qui sert type: LoadBalancer services reste un équilibreur de charge Standard et nécessite des adresses IP publiques Standard. Si vous préprovisionnez l’inventaire d’adresses IP publiques étiquetées, planifiez les deux références SKU : StandardV2 pour la sortie de passerelle NAT et Standard pour les services entrants.

Fonctionnalités de la référence SKU de la passerelle NAT Gateway managée

Le managedNATGateway type sortant prend en charge différentes fonctionnalités en fonction de la valeur de networkProfile.natGatewayProfile.sku.

Capacité StandardV2 Standard
Valeur par défaut pour les nouveaux clusters Valeur par défaut lorsqu’elle est disponible, sauf si le client sélectionne explicitement Standard. Utilisé lorsqu’il est sélectionné explicitement ou lorsque StandardV2 n’est pas disponible dans la région.
Comportement de la zone de disponibilité Redondant entre zones par défaut. Zonal ou nonzonal, en fonction de la configuration du cluster.
adresses IPv4 sortantes gérées par Azure Soutenu. Soutenu.
adresses IPv6 sortantes gérées par Azure Soutenu. Non prise en charge.
Adresses IP sortantes et préfixes définies par le client Pris en charge avec les adresses IP publiques standardV2 et les préfixes. Non pris en charge pour une passerelle NAT gérée par AKS.

Créer un cluster AKS

Créez un cluster AKS en exécutant la commande az aks create avec le paramètre --outbound-type managedNATGateway. AKS est défini par défaut sur la référence SKU StandardV2 dans les régions prises en charge et la référence SKU Standard dans les régions non prises en charge.

az aks create \
    --resource-group <resource-group> \
    --name <cluster-name> \
    --location <location> \
    --outbound-type managedNATGateway \
    --nat-gateway-managed-outbound-ip-count 1 \
    --generate-ssh-keys

Important

Vous pouvez mettre à niveau une passerelle NAT standard gérée existante vers StandardV2, mais vous ne pouvez pas rétrograder une passerelle NAT StandardV2 gérée vers Standard.

Configurer des adresses IP sortantes pour une passerelle NAT StandardV2 managée

Dans les régions où StandardV2 est disponible, configurez des adresses sortantes à l’aide de l’une des approches suivantes. Vous ne pouvez pas combiner la configuration IP sortante gérée par Azure et la configuration IP sortante définie par le client.

Utiliser des adresses IP gérées par Azure

Utilisez managedOutboundIPProfile pour qu’AKS alloue et gère les adresses IPv4 et IPv6 publiques sortantes.

{
  "properties": {
    "networkProfile": {
      "outboundType": "managedNATGateway",
      "natGatewayProfile": {
          "managedOutboundIPProfile": {
          "count": 1,
          "countIPv6": 1
        }
      }
    }
  }
}

Utiliser des adresses IP et des préfixes définis par le client

Utilisez outboundIPs et outboundIPPrefixes pour fournir des adresses IP publiques ou des préfixes précréé(e)s. Ces ressources doivent utiliser la référence SKU StandardV2. Les adresses IP publiques SKU Standard existantes et les préfixes SKU Standard existants ne sont pas compatibles avec une passerelle NAT StandardV2.

  1. Créez une adresse IP publique standardV2 redondante interzone et un préfixe d’adresse IP publique.

    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 publicIp.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)
    
  2. Déployez un type sortant de passerelle NAT managée dans une région qui prend en charge la passerelle NAT StandardV2 et référencez l’adresse IP publique et le préfixe dans la configuration du cluster AKS.

    {
      "properties": {
        "networkProfile": {
          "outboundType": "managedNATGateway",
          "natGatewayProfile": {
            "outboundIPs": {
              "publicIPs": [
                "<standard-v2-public-ip-resource-id>"
              ]
            },
            "outboundIPPrefixes": {
              "publicIPPrefixes": [
                "<standard-v2-public-ip-prefix-resource-id>"
              ]
            }
          }
        }
      }
    }
    

Le modèle de propriété IP sortante est déterminé lorsque la passerelle NAT StandardV2 est initialement créée. Vous pouvez modifier des ressources IP sortantes individuelles dans le modèle sélectionné, mais vous ne pouvez pas basculer une passerelle NAT Gateway existante entre les ressources IP sortantes gérées par Azure et définies par le client. Vous ne pouvez pas non plus modifier le SKU de la passerelle NAT. La rétrogradation de StandardV2 vers Standard n’est pas prise en charge.

Créer un cluster AKS avec un userAssignedNatGateway

Cette configuration nécessite une mise en réseau autonome (via Azure CNI) et que la passerelle NAT est préconfigurée sur le sous-réseau. Les passerelles NAT Standard et StandardV2 sont prises en charge pour cela outbound-type. Les commandes suivantes créent les ressources nécessaires pour déployer une ressource de passerelle NAT StandardV2 pour votre cluster AKS.

  1. Créez un groupe de ressources à l’aide de la commande az group create.

    # Set environment variables for resource group, AKS cluster, public IP, and public IP prefix names
    export RANDOM_SUFFIX=$(openssl rand -hex 3)
    export MY_RG="myResourceGroup$RANDOM_SUFFIX"
    
    # Create the resource group
    az group create --name $MY_RG --location southcentralus
    
  2. Créez une identité gérée pour les autorisations réseau et stockez l’ID dans $IDENTITY_ID pour une utilisation ultérieure.

    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)
    

    Exemple de sortie :

    /xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNatClusterIdxxx
    
  3. Créez une adresse IP publique StandardV2 pour la passerelle NAT à l’aide de la az network public-ip create commande. Une passerelle NAT StandardV2 nécessite une adresse IP publique 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-v2
    
  4. Créez la passerelle NAT StandardV2 à l’aide de la az network nat gateway create commande.

    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 4
    

    Important

    Pour garantir la redondance de zone, déployez une ressource de passerelle NAT StandardV2, qui s’étend sur plusieurs zones de disponibilité dans une région. Cette configuration garantit une connectivité sortante continue même si une seule zone échoue. Pour plus d’informations sur la passerelle NAT StandardV2 et ses avantages, consultez la passerelle NAT StandardV2. Par comparaison, une ressource de passerelle NAT Standard fournit une résilience uniquement dans la zone de disponibilité dans laquelle vous la déployez.

  5. Créer un réseau virtuel en utilisant la commande 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/20 
    
  6. Créez un sous-réseau dans le réseau virtuel à l’aide de la passerelle NAT et stockez l’ID dans $SUBNET_ID pour une utilisation ultérieure.

    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)
    
  7. Créez un cluster AKS à l’aide du sous-réseau avec la passerelle NAT et l’identité managée avec la commande 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
    

Considérations relatives à la production

Lorsque vous utilisez une passerelle NAT managée en production, planifiez le comportement du trafic sortant, l’accès au serveur d’API et la résilience des charges de travail.

  • Utilisez AKS Automatic lorsque vous souhaitez la configuration par défaut recommandée, prête pour la production, pour la plupart des charges de travail AKS.
  • Utilisez la passerelle NAT managée dans AKS Standard lorsque vous souhaitez une connectivité sortante gérée par AKS sans apporter votre propre passerelle NAT.
  • Utilisez un cluster privé ou une intégration au réseau virtuel du serveur d’API lorsque vous souhaitez réduire l’exposition du trafic du serveur d’API.
  • Passez en revue les exigences d’adresse IP sortante avant de passer en ligne.
  • Si vos charges de travail dépendent d’adresses sortantes fixes, vérifiez que la passerelle NAT managée répond à ces exigences avant le déploiement.
  • Si vous devez gérer NAT indépendamment d’AKS, utilisez une passerelle NAT affectée par l’utilisateur.

Désactiver OutboundNAT pour Windows

Windows OutboundNAT peut provoquer certains problèmes de connexion et de communication avec vos pods AKS. Un exemple de problème est la réutilisation du port de nœud. Dans cet exemple, Windows OutboundNAT utilise des ports pour traduire votre adresse IP de pod en adresse IP hôte de nœud Windows, ce qui peut entraîner une connexion instable au service externe en raison d’un problème d’épuisement des ports.

Windows active OutboundNAT par défaut. Vous pouvez désormais désactiver manuellement OutboundNAT lors de la création de pools d’agents Windows.

Conditions préalables et limitations

  • Vous avez besoin d’un cluster AKS existant avec v1.26 ou version ultérieure. Si vous utilisez Kubernetes version 1.25 ou antérieure, mettez à jour votre configuration de déploiement.
  • Vous ne pouvez pas définir le type de trafic sortant du cluster sur LoadBalancer. Vous pouvez le définir sur NAT Gateway ou UDR :
    • Passerelle NAT : la passerelle NAT gère automatiquement les connexions NAT et est plus puissante que Standard Load Balancer. Vous risquez d’entraîner des frais supplémentaires à l’aide de cette option.
    • UDR (UserDefinedRouting) : vous devez garder à l’esprit les limitations de port lors de la configuration des règles d’acheminement.
    • Pour passer d’un équilibreur de charge à une passerelle NAT, vous pouvez ajouter une passerelle NAT au réseau virtuel ou exécuter az aks upgrade pour mettre à jour le type sortant.

Remarque

UserDefinedRouting présente les limites suivantes :

  • Le SNAT par Load Balancer (doit utiliser l’OutboundNAT par défaut) dispose de 64 ports sur l’IP hôte.
  • SNAT par Pare-feu Azure (désactiver OutboundNAT) a 2 496 ports par adresse IP publique.
  • Le SNAT via NAT Gateway (désactiver OutboundNAT) dispose de 64 512 ports par adresse IP publique.
  • Si la plage de ports Pare-feu Azure n'est pas suffisante pour votre application, vous devez utiliser la passerelle NAT.
  • Pare-feu Azure ne fait pas de SNAT avec des règles réseau lorsque l'adresse IP de destination se trouve dans une plage d'adresses IP privées, conformément à l'IANA RFC 1918, ou à l'espace d'adressage partagé défini par l'IANA RFC 6598.

Désactiver manuellement OutboundNAT pour Windows

  • Désactivez manuellement OutboundNAT pour Windows lors de la création de pools d’agents Windows à l’aide de la commande az aks nodepool add avec l’indicateur --disable-windows-outbound-nat.

    Remarque

    Vous pouvez utiliser un cluster AKS existant, mais vous devrez peut-être mettre à jour le type de sortie et ajouter un pool de nœuds pour activer --disable-windows-outbound-nat.

    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-nat
    

    Exemple de sortie :

    {
      "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"
    }
    

Pour plus d’informations sur Azure NAT Gateway et AKS Automatic, consultez les articles suivants :