Een beheerde of door de gebruiker toegewezen NAT-gateway maken voor uw AKS-cluster (Azure Kubernetes Service)
Hoewel u uitgaand verkeer kunt routeren via een Azure Load Balancer, gelden er beperkingen voor het aantal uitgaande stromen verkeer dat u kunt hebben. Met Azure NAT Gateway kunnen maximaal 64.512 uitgaande UDP- en TCP-verkeersstromen per IP-adres met maximaal 16 IP-adressen worden toegestaan.
In dit artikel wordt beschreven hoe u een AKS-cluster (Azure Kubernetes Service) maakt met een beheerde NAT-gateway en een door de gebruiker toegewezen NAT-gateway voor uitgaand verkeer. U ziet ook hoe u UitgaandeNAT kunt uitschakelen in Windows.
Voordat u begint
- Zorg ervoor dat u de nieuwste versie van Azure CLI gebruikt.
- Zorg ervoor dat u Kubernetes versie 1.20.x of hoger gebruikt.
- Beheerde NAT-gateway is niet compatibel met aangepaste virtuele netwerken.
Belangrijk
In niet-privéclusters wordt verkeer van API-serverclusters gerouteerd en verwerkt via het uitgaande type clusters. Als u wilt voorkomen dat API-serververkeer als openbaar verkeer wordt verwerkt, kunt u overwegen een privécluster te gebruiken of de functie VNet-integratie van API Server te bekijken.
Een AKS-cluster maken met een beheerde NAT-gateway
Maak een AKS-cluster met een nieuwe beheerde NAT-gateway met behulp van de opdracht met de
az aks create
--outbound-type managedNATGateway
--nat-gateway-managed-outbound-ip-count
, en--nat-gateway-idle-timeout
parameters. Als u wilt dat de NAT-gateway buiten een specifieke beschikbaarheidszone werkt, geeft u de zone op met behulp van--zones
.Als er geen zone is opgegeven bij het maken van een beheerde NAT-gateway, wordt de NAT-gateway standaard geïmplementeerd in 'geen zone'. Wanneer de NAT-gateway in geen zone wordt geplaatst, plaatst Azure de resource in een zone voor u. Zie niet-zonegebonden NAT-gateway voor meer informatie over het niet-zonegebonden implementatiemodel.
Een beheerde NAT-gatewayresource kan niet worden gebruikt in meerdere beschikbaarheidszones.
az aks create \ --resource-group myResourceGroup \ --name myNatCluster \ --node-count 3 \ --outbound-type managedNATGateway \ --nat-gateway-managed-outbound-ip-count 2 \ --nat-gateway-idle-timeout 4 \ --generate-ssh-keys
Werk het uitgaande IP-adres of de time-out voor inactiviteit bij met behulp van de
az aks update
opdracht met de--nat-gateway-managed-outbound-ip-count
of--nat-gateway-idle-timeout
parameter.az aks update \ --resource-group myResourceGroup \ --name myNatCluster\ --nat-gateway-managed-outbound-ip-count 5
Een AKS-cluster maken met een door de gebruiker toegewezen NAT-gateway
Deze configuratie vereist bring-your-own-netwerken (via Kubenet of Azure CNI) en dat de NAT-gateway vooraf is geconfigureerd op het subnet. Met de volgende opdrachten maakt u de vereiste resources voor dit scenario.
Maak een resourcegroep met behulp van de
az group create
opdracht.az group create --name myResourceGroup \ --location southcentralus
Maak een beheerde identiteit voor netwerkmachtigingen en sla de id op voor
$IDENTITY_ID
later gebruik.IDENTITY_ID=$(az identity create \ --resource-group myResourceGroup \ --name myNatClusterId \ --location southcentralus \ --query id \ --output tsv)
Maak een openbaar IP-adres voor de NAT-gateway met behulp van de
az network public-ip create
opdracht.az network public-ip create \ --resource-group myResourceGroup \ --name myNatGatewayPip \ --location southcentralus \ --sku standard
Maak de NAT-gateway met behulp van de
az network nat gateway create
opdracht.az network nat gateway create \ --resource-group myResourceGroup \ --name myNatGateway \ --location southcentralus \ --public-ip-addresses myNatGatewayPip
Belangrijk
Eén NAT-gatewayresource kan niet worden gebruikt in meerdere beschikbaarheidszones. Om zonetolerantie te garanderen, wordt aanbevolen om een NAT-gatewayresource te implementeren in elke beschikbaarheidszone en toe te wijzen aan subnetten die AKS-clusters in elke zone bevatten. Zie NAT-gateway voor elke zone voor meer informatie over dit implementatiemodel. Als er geen zone is geconfigureerd voor nat-gateway, is de standaardzoneplaatsing geen zone, waarin Azure NAT-gateway voor u in een zone plaatst.
Maak een virtueel netwerk met behulp van de
az network vnet create
opdracht.az network vnet create \ --resource-group myResourceGroup \ --name myVnet \ --location southcentralus \ --address-prefixes 172.16.0.0/20
Maak een subnet in het virtuele netwerk met behulp van de NAT-gateway en sla de id op voor
$SUBNET_ID
later gebruik.SUBNET_ID=$(az network vnet subnet create \ --resource-group myResourceGroup \ --vnet-name myVnet \ --name myNatCluster \ --address-prefixes 172.16.0.0/22 \ --nat-gateway myNatGateway \ --query id \ --output tsv)
Maak een AKS-cluster met behulp van het subnet met de NAT-gateway en de beheerde identiteit met behulp van de
az aks create
opdracht.az aks create \ --resource-group myResourceGroup \ --name myNatCluster \ --location southcentralus \ --network-plugin azure \ --vnet-subnet-id $SUBNET_ID \ --outbound-type userAssignedNATGateway \ --assign-identity $IDENTITY_ID \ --generate-ssh-keys
UitgaandeNAT voor Windows uitschakelen
Windows OutboundNAT kan bepaalde verbindings- en communicatieproblemen met uw AKS-pods veroorzaken. Een voorbeeld van een probleem is het hergebruik van knooppuntpoorten. In dit voorbeeld gebruikt Windows UitgaandeNAT poorten om uw pod-IP te vertalen naar het HOST-IP-adres van uw Windows-knooppunt, wat kan leiden tot een instabiele verbinding met de externe service vanwege een probleem met poortuitputting.
Windows schakelt standaard UitgaandeNAT in. U kunt outboundNAT nu handmatig uitschakelen bij het maken van nieuwe Windows-agentgroepen.
Vereisten
- Bestaand AKS-cluster met v1.26 of hoger. Als u Kubernetes versie 1.25 of ouder gebruikt, moet u de implementatieconfiguratie bijwerken.
Beperkingen
- U kunt het uitgaande clustertype niet instellen op LoadBalancer. U kunt deze instellen op Nat Gateway of UDR:
- NAT-gateway: NAT Gateway kan automatisch nat-verbinding verwerken en is krachtiger dan Standard Load Balancer. Voor deze optie worden mogelijk extra kosten in rekening gebracht.
- UDR (UserDefinedRouting): u moet rekening houden met poortbeperkingen bij het configureren van routeringsregels.
- Als u wilt overschakelen van een load balancer naar NAT-gateway, kunt u een NAT-gateway toevoegen aan het VNet of uitvoeren
az aks upgrade
om het uitgaande type bij te werken.
Notitie
UserDefinedRouting heeft de volgende beperkingen:
- SNAT by Load Balancer (moet de standaard-uitgaandeNAT gebruiken) heeft '64 poorten op het host-IP-adres'.
- SNAT by Azure Firewall (outboundNAT uitschakelen) heeft 2496 poorten per openbaar IP-adres.
- SNAT by NAT Gateway (outboundNAT uitschakelen) heeft 64512 poorten per openbaar IP-adres.
- Als het poortbereik van Azure Firewall niet voldoende is voor uw toepassing, moet u NAT Gateway gebruiken.
- Azure Firewall biedt geen SNAT met netwerkregels wanneer het doel-IP-adres zich in een privé-IP-adresbereik bevindt per IANA RFC 1918 of gedeelde adresruimte per IANA RFC 6598.
UitgaandeNAT voor Windows handmatig uitschakelen
Schakel UitgaandeNAT voor Windows handmatig uit bij het maken van nieuwe Windows-agentgroepen met behulp van de
az aks nodepool add
opdracht met de--disable-windows-outbound-nat
vlag.Notitie
U kunt een bestaand AKS-cluster gebruiken, maar mogelijk moet u het uitgaande type bijwerken en een knooppuntgroep toevoegen om dit in te schakelen
--disable-windows-outbound-nat
.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myNatCluster \ --name mynp \ --node-count 3 \ --os-type Windows \ --disable-windows-outbound-nat
Volgende stappen
Zie Azure NAT Gateway voor meer informatie over Azure NAT Gateway.
Azure Kubernetes Service