Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt uw AKS-clusters implementeren in een dual-stackmodus wanneer u een virtueel Azure-netwerk met twee stacks gebruikt. In deze configuratie ontvangen knooppunten zowel een IPv4- als IPv6-adres van het subnet van het virtuele Azure-netwerk. Pods ontvangen zowel een IPv4- als IPv6-adres van een logisch andere adresruimte naar het subnet van het virtuele Azure-netwerk van de knooppunten. Nat (Network Address Translation) wordt vervolgens geconfigureerd, zodat de pods resources in het virtuele Azure-netwerk kunnen bereiken. Het bron-IP-adres van het verkeer wordt genat naar het primaire IP-adres van het knooppunt uit dezelfde IP-familie (IPv4 naar IPv4 en IPv6 naar IPv6).
In dit artikel leest u hoe u dual-stack-netwerken gebruikt met een AKS-cluster. Zie Netwerkconcepten voor Kubernetes en AKS voor meer informatie over netwerkopties en overwegingen.
Belangrijk
Vanaf 30 november 2025 ondersteunt Azure Kubernetes Service (AKS) geen beveiligingsupdates meer voor Azure Linux 2.0. De installatiekopieën van het Azure Linux 2.0-knooppunt zijn bevroren bij de release 202512.06.0. Vanaf 31 maart 2026 worden knooppuntafbeeldingen verwijderd en kunt u uw knooppoolen niet schalen. Migreer naar een ondersteunde Versie van Azure Linux door uw knooppuntgroepen te upgraden naar een ondersteunde Kubernetes-versie of door te migreren naar osSku AzureLinux3. Zie het Probleem met buitengebruikstelling van GitHub en de aankondiging van de buitengebruikstelling van Azure Updates voor meer informatie. Als u op de hoogte wilt blijven van aankondigingen en updates, volg de AKS-release-opmerkingen.
Beperkingen
- In Azure Linux-knooppuntgroepen zijn IPv6-services vereist
externalTrafficPolicy: Local. - Dual-stack-netwerken zijn vereist voor het virtuele Azure-netwerk en de POD CIDR.
- IPv6-only met een enkele stack wordt niet ondersteund voor IP-adressen van knooppunten of pods. Services kunnen worden aangeboden op IPv4 of IPv6.
- Azure CNI-overlay biedt geen ondersteuning voor Azure- of Calico-netwerkbeleid met dubbele stack-netwerken. Als u netwerkbeleid wilt gebruiken, gebruikt u Azure CNI Powered by Cilium.
- Standard NAT Gateway ondersteunt alleen IPv4. Gebruik de StandardV2 NAT-gateway voor dual-stack-uitgaand verkeer. Het door AKS beheerde uitgaande type
managedNATGatewayV2is beschikbaar als preview. - De invoegtoepassing voor virtuele knooppunten wordt niet ondersteund met dual-stack-netwerken.
Vereiste voorwaarden
- Azure CLI versie 2.48.1 of hoger. Voer deze opdracht
az --versionuit om uw geïnstalleerde versie te vinden. Raadpleeg Azure CLI installeren om de Azure CLI te installeren of bij te werken. - Gebruik een ondersteunde Kubernetes-versie in AKS die beschikbaar is in uw regio.
In dit artikel wordt Azure CNI-overlay gebruikt. U kunt ook een cluster met twee stacks implementeren met Azure CNI Powered by Cilium op Linux-clusters met Kubernetes versie 1.29 of hoger.
Overzicht van dual-stack-netwerken in Kubernetes
Kubernetes v1.23 biedt stabiele upstream-ondersteuning voor IPv4-/IPv6-clusters met dubbele stack , waaronder pod- en servicenetwerken. Knooppunten en pods krijgen altijd zowel een IPv4- als een IPv6-adres toegewezen, terwijl services dual-stack of single-stack kunnen zijn op een van beide adresfamilies.
AKS configureert de vereiste ondersteunende services voor dual-stack-netwerken. Deze configuratie omvat:
- Als u een beheerd virtueel netwerk gebruikt, is er een configuratie van een virtueel netwerk met dubbele stack.
- IPv4- en IPv6-knooppunt- en podadressen.
- Uitgaande regels voor zowel IPv4- als IPv6-verkeer.
- Load balancer instellen voor IPv4- en IPv6-services.
Opmerking
Wanneer u dual-stack-netwerken gebruikt met een uitgaand type door de gebruiker gedefinieerde routering, kunt u ervoor kiezen om een standaardroute voor IPv6 te hebben, afhankelijk van of u uw IPv6-verkeer nodig hebt om internet te bereiken. Als u geen standaardroute voor IPv6 hebt, wordt er een waarschuwing weergegeven wanneer u een cluster maakt, maar het maken van clusters niet verhindert.
Parameters voor dual-stack-clusters
De volgende parameters ondersteunen clusters met twee stacks:
| Parameter | Geaccepteerde waarden | Standaardwaarde | Constraints |
|---|---|---|---|
--ip-families |
ipv4 of ipv4,ipv6 |
Niet opgegeven | Geef een door komma's gescheiden lijst met IP-families op om het cluster in te schakelen. |
--pod-cidrs |
Door komma’s gescheiden CIDR-bereiken | 10.244.0.0/16,fd12:3456:789a::/64 |
Het aantal intervallen en de volgorde ervan moeten overeenkomen met --ip-families. |
--service-cidrs |
Door komma's gescheiden CIDR-bereiken | 10.0.0.0/16,fd12:3456:789a:1::/108 |
Het aantal en de volgorde van intervallen moeten overeenkomen met --ip-families. Het IPv6-subnet mag niet groter zijn dan /108. |
Een AKS-cluster met twee stacks implementeren
Maak een Azure-resourcegroep voor het cluster met behulp van de
az group createopdracht.az group create --location <region> --name <resourceGroupName>Maak een dual-stack AKS-cluster met de
az aks createopdracht waarbij de--ip-familiesparameter is ingesteld opipv4,ipv6.az aks create \ --location <region> \ --resource-group <resourceGroupName> \ --name <clusterName> \ --network-plugin azure \ --network-plugin-mode overlay \ --ip-families ipv4,ipv6 \ --generate-ssh-keysNadat u het cluster hebt gemaakt, haalt u de clusterreferenties op met behulp van de
az aks get-credentialsopdracht.az aks get-credentials --resource-group <resourceGroupName> --name <clusterName>
Controleer de knooppunten om beide IP-families te zien
Nadat het cluster is ingericht, controleert u of de knooppunten zijn ingericht met dual-stack-netwerken met behulp van de kubectl get nodes opdracht.
kubectl get nodes -o=custom-columns="NAME:.metadata.name,ADDRESSES:.status.addresses[?(@.type=='InternalIP')].address,PODCIDRS:.spec.podCIDRs[*]"
In de uitvoer van de kubectl get nodes opdracht ziet u dat de knooppunten adressen en ip-toewijzingsruimte voor pods hebben van zowel IPv4 als IPv6.
NAME ADDRESSES PODCIDRS
aks-nodepool1-14508455-vmss000000 10.240.0.4,2001:1234:5678:9abc::4 10.244.0.0/24,fd12:3456:789a::/80
aks-nodepool1-14508455-vmss000001 10.240.0.5,2001:1234:5678:9abc::5 10.244.1.0/24,fd12:3456:789a:0:1::/80
aks-nodepool1-14508455-vmss000002 10.240.0.6,2001:1234:5678:9abc::6 10.244.2.0/24,fd12:3456:789a:0:2::/80
Een voorbeeldworkload maken
Implementeer een NGINX-webserver met drie replica's om ip-toewijzing van pods met twee stacks te verifiëren.
Een NGINX-webserver implementeren
Maak een NGINX-webserver door de opdracht uit te
kubectl create deployment nginxvoeren.kubectl create deployment nginx --image=nginx:latest --replicas=3Bekijk de pod-resources door de opdracht uit te
kubectl get podsvoeren.kubectl get pods -o custom-columns="NAME:.metadata.name,IPs:.status.podIPs[*].ip,NODE:.spec.nodeName,READY:.status.conditions[?(@.type=='Ready')].status"In de uitvoer ziet u dat de pods zowel IPv4- als IPv6-adressen hebben. De pods tonen geen IP-adressen totdat ze klaar zijn.
NAME IPs NODE READY nginx-55649fd747-9cr7h 10.244.2.2,fd12:3456:789a:0:2::2 aks-nodepool1-14508455-vmss000002 True nginx-55649fd747-p5lr9 10.244.0.7,fd12:3456:789a::7 aks-nodepool1-14508455-vmss000000 True nginx-55649fd747-r2rqh 10.244.1.2,fd12:3456:789a:0:1::2 aks-nodepool1-14508455-vmss000001 True
Maak de workload beschikbaar via een LoadBalancer type-service.
Belangrijk
Azure Load Balancer verzendt statustests naar IPv6-bestemmingen vanaf een koppelingsadres. Op Azure Linux-knooppuntgroepen werkt verkeer naar IPv6-services die gebruikmaken van externalTrafficPolicy: Cluster niet. De volgende voorbeelden stellen externalTrafficPolicy: Local in op de IPv6-service, zodat kube-proxy reageert op de probe op het knooppunt.
Stel de NGINX-implementatie beschikbaar met afzonderlijke IPv4- en IPv6-services
LoadBalancermet behulp van dekubectl expose deployment nginxopdracht.kubectl expose deployment nginx --name=nginx-ipv4 --port=80 --type=LoadBalancer kubectl expose deployment nginx --name=nginx-ipv6 --port=80 --type=LoadBalancer --overrides='{"spec":{"externalTrafficPolicy":"Local","ipFamilies":["IPv6"]}}'U ontvangt uitvoer waarin wordt weergegeven dat de services beschikbaar zijn.
service/nginx-ipv4 exposed service/nginx-ipv6 exposedNadat u de implementatie beschikbaar hebt gemaakt en de
LoadBalancerservices volledig hebt ingericht, haalt u de IP-adressen van de services op met behulp van dekubectl get servicesopdracht.kubectl get servicesNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-ipv4 LoadBalancer 10.0.88.78 20.46.24.24 80:30652/TCP 97s nginx-ipv6 LoadBalancer fd12:3456:789a:1::981a 2603:1030:8:5::2d 80:32002/TCP 63sControleer de functionaliteit van een Linux-VM of on-premises machine met een toegewezen IPv6-adres en IPv6-routering geconfigureerd. Azure Cloud Shell biedt geen ondersteuning voor IPv6.
SERVICE_IP=$(kubectl get services nginx-ipv6 -o jsonpath='{.status.loadBalancer.ingress[0].ip}') curl -s "http://[${SERVICE_IP}]" | head -n5<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style>