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.
Waarschuwing
Het Kubernetes SIG Network en de Security Response Committee kondigde de aanstaande buitengebruikstelling van het NGINX-project voor inkomend verkeer aan, met een einde aan onderhoud in maart 2026. Er is momenteel geen onmiddellijke actie vereist voor AKS-clusters met behulp van de invoegtoepassing voor toepassingsroutering met NGINX. Microsoft biedt officiële ondersteuning tot en met november 2026 voor kritieke beveiligingspatches voor de application routing-add-on NGINX Ingress-resources.
AKS is afgestemd op upstream Kubernetes door over te stappen op gateway-API als de langetermijnstandaard voor inkomend verkeer en L7-verkeerbeheer. U wordt aangeraden uw migratiepad te plannen op basis van uw huidige installatie:
- Invoegtoepassingsgebruikers voor toepassingsroutering: Productieworkloads blijven volledig ondersteund tot november 2026. Migreer naar de Gateway API-implementatie voor toepassingsroutering voor een op Gateway API gebaseerd beheer van inkomend verkeer.
-
OSS NGINX-gebruikers hebben verschillende opties:
- Migreer naar de invoegtoepassing voor toepassingsroutering met NGINX om te profiteren van officiële ondersteuning tot en met november 2026 tijdens het plannen van uw gateway-API-migratie op lange termijn.
- Migreer naar de Gateway API-implementatie voor toepassingsroutering voor een op Gateway API gebaseerd beheer van inkomend verkeer.
- Migreren naar Application Gateway voor containers, die ondersteuning biedt voor zowel de Ingress-API als de Gateway-API.
- Service mesh-gebruikers: Als u van plan bent om een service-mesh te gebruiken, kunt u de invoegtoepassing service mesh op basis van Istio overwegen. Gebruik Istio Ingress en plan om te migreren naar de API-ondersteuning van Istio Gateway wanneer het algemeen beschikbaar is.
In dit artikel leest u hoe u een NGINX-ingangscontroller configureert voor gebruik met een interne Load Balancer van Azure. Ook wordt uitgelegd hoe u een privé-Azure DNS-zone configureert om DNS-omzetting voor de privé-eindpunten in te schakelen om specifieke domeinen op te lossen.
Voordat u begint
Een AKS-cluster met de invoegtoepassing voor toepassingsroutering.
Als u een privé-DNS-zone van Azure wilt koppelen, hebt u de rol Eigenaar, Azure-accountbeheerder of Azure-beheerder in uw Azure-abonnement nodig.
Verbinding maken met uw AKS-cluster
Als u vanaf uw lokale computer verbinding wilt maken met het Kubernetes-cluster, gebruikt kubectlu de Kubernetes-opdrachtregelclient. U kunt deze lokaal installeren met behulp van de opdracht az aks install-cli . Als u Azure Cloud Shell gebruikt, is kubectl al geïnstalleerd.
In het volgende voorbeeld wordt het maken van verbinding met uw cluster met de naam aks-cluster in de test-rg geconfigureerd met behulp van de az aks get-credentials opdracht.
az aks get-credentials \
--resource-group test-rg \
--name aks-cluster
Een virtueel netwerk maken
Als u een privé-DNS-zone naar uw virtuele netwerk wilt publiceren, geeft u een lijst op met virtuele netwerken die records in de zone mogen omzetten met virtuele netwerkkoppelingen.
In het volgende voorbeeld wordt een virtueel netwerk met de naam vnet-1 gemaakt in de test-rg-resourcegroep en één subnet met de naam subnet-1 dat u binnen het virtuele netwerk wilt maken met een specifiek adresvoorvoegsel.
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--location eastus \
--address-prefix 10.2.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefixes 10.2.0.0/24
Een privé-DNS-zone van Azure maken
Notitie
U kunt de add-on voor application routing configureren om automatisch records te maken in een of meer globale en privé-DNS-zones van Azure voor hosts die zijn gedefinieerd in ingress resources. Alle globale Azure DNS-zones en alle privé-Azure DNS-zones moeten zich in dezelfde resourcegroep bevinden.
Maak een DNS-zone met behulp van de opdracht az network private-dns zone create , waarbij u de naam van de zone en de resourcegroep opgeeft waarin u deze wilt maken. In het volgende voorbeeld wordt een DNS-zone met de naam private.contoso.com gemaakt in de resourcegroep test-rg .
az network private-dns zone create \
--resource-group test-rg \
--name private.contoso.com
U maakt een virtuele netwerkkoppeling naar de DNS-zone die u eerder hebt gemaakt met behulp van de opdracht az network private-dns link vnet create . In het volgende voorbeeld wordt een koppeling met de naam dns-link gemaakt naar de zone private.contoso.com voor het virtuele netwerk vnet-1. Neem de --registration-enabled parameter op om aan te geven dat de koppeling niet geschikt is voor registratie.
az network private-dns link vnet create \
--resource-group test-rg \
--name dns-link \
--zone-name private.contoso.com \
--virtual-network vnet-1 \
--registration-enabled false
De functie voor automatische registratie van azure DNS-privézones beheert DNS-records voor virtuele machines die zijn geïmplementeerd in een virtueel netwerk. Wanneer u een virtueel netwerk koppelt aan een privé-DNS-zone waarvoor deze instelling is ingeschakeld, wordt er een DNS-record gemaakt voor elke virtuele Azure-machine voor uw AKS-knooppunt dat in het virtuele netwerk is geïmplementeerd.
Een privé-DNS-zone van Azure koppelen aan de invoegtoepassing voor toepassingsroutering
Notitie
De az aks approuting zone add opdracht gebruikt de machtigingen van de gebruiker die de opdracht uitvoert om de azure DNS-zoneroltoewijzing te maken. De rol Privé-DNS zonebijdrager is een ingebouwde rol voor het beheren van privé-DNS-resources en wordt toegewezen aan de beheerde identiteit van de invoegtoepassing. Zie Samenvatting van beheerde identiteiten in AKS voor meer informatie over beheerde AKS-identiteiten.
Haal de resource-id voor de DNS-zone op met behulp van de
az network dns zone showopdracht en stel de uitvoer in op een variabele met de naamZONEID. In het volgende voorbeeld wordt een query uitgevoerd op de zone private.contoso.com in de test-rg van de resourcegroep.ZONEID=$(az network private-dns zone show \ --resource-group test-rg \ --name private.contoso.com \ --query "id" \ --output tsv)Werk de invoegtoepassing bij om integratie met Azure DNS in te schakelen met behulp van de
az aks approuting zoneopdracht. U kunt een door komma's gescheiden lijst met resource-id's voor DNS-zone doorgeven. In het volgende voorbeeld wordt het AKS-cluster aks-cluster in de resourcegroep test-rg bijgewerkt.az aks approuting zone add \ --resource-group test-rg \ --name aks-cluster \ --ids=${ZONEID} \ --attach-zones
Een NGINX-ingangscontroller maken met een privé-IP-adres en een interne load balancer
De invoegtoepassing voor toepassingsroutering maakt gebruik van een aangepaste Kubernetes-resourcedefinitie (CRD) die wordt aangeroepen NginxIngressController om NGINX-ingangscontrollers te configureren. U kunt meer ingangscontrollers maken of een bestaande configuratie wijzigen.
NginxIngressController CRD heeft een loadBalancerAnnotations veld om het gedrag van de service van de NGINX-ingangscontroller te beheren door load balancer-aantekeningen in te stellen. Zie Aanpassingen via Kubernetes-aantekeningen voor meer informatie over load balancer-aantekeningen.
Voer de volgende stappen uit om een NGINX-ingangscontroller te maken met een interne Azure Load Balancer met een privé-IP-adres.
Kopieer het volgende YAML-manifest naar een nieuw bestand met de naam nginx-internal-controller.yaml en sla het bestand op uw lokale computer op.
apiVersion: approuting.kubernetes.azure.com/v1alpha1 kind: NginxIngressController metadata: name: nginx-internal spec: ingressClassName: nginx-internal controllerNamePrefix: nginx-internal loadBalancerAnnotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true"Maak de NGINX-controllerbronnen voor inkomend verkeer met behulp van de
kubectl applyopdracht.kubectl apply -f nginx-internal-controller.yamlIn de volgende voorbeelduitvoer ziet u de gemaakte resource:
nginxingresscontroller.approuting.kubernetes.azure.com/nginx-internal createdControleren of de ingangscontroller is gemaakt
U kunt de status van de NGINX-ingangscontroller controleren met behulp van de
kubectl get nginxingresscontrolleropdracht.kubectl get nginxingresscontrollerIn de volgende voorbeelduitvoer ziet u de gemaakte resource. Het kan enkele minuten duren voordat de controller beschikbaar is:
NAME INGRESSCLASS CONTROLLERNAMEPREFIX AVAILABLE default webapprouting.kubernetes.azure.com nginx True nginx-internal nginx-internal nginx-internal True
Een app implementeren
De invoegtoepassing voor toepassingsroutering maakt gebruik van aantekeningen op Kubernetes Ingress-objecten om de juiste resources te maken.
Maak de toepassingsnaamruimte genaamd
aks-storeom de voorbeeldpods uit te voeren met de opdrachtkubectl create namespace.kubectl create namespace aks-storeImplementeer de AKS-archieftoepassing met behulp van het volgende YAML-manifestbestand:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
Met dit manifest worden de benodigde implementaties en services voor de AKS-archieftoepassing gemaakt.
Maak de Ingress-resource die gebruikmaakt van een hostnaam op de Azure privé DNS-zone en een privé-IP-adres
Werk host bij met de naam van uw DNS-host, bijvoorbeeld store-front.private.contoso.com. Controleer of u de waarde nginx-internal hebt opgegeven voor de ingressClassName.
Kopieer het volgende YAML-manifest naar een nieuw bestand met de naam ingress.yaml en sla het bestand op uw lokale computer op.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: nginx-internal rules: - host: store-front.private.contoso.com http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: PrefixMaak de ingress-resource met behulp van de
kubectl applycommando.kubectl apply -f ingress.yaml -n aks-storeIn de volgende voorbeelduitvoer ziet u de gemaakte resource:
ingress.networking.k8s.io/store-front created
Controleren of de beheerde Ingress is aangemaakt
U kunt controleren of de Managed Ingress is aangemaakt met behulp van de kubectl get ingress opdracht.
kubectl get ingress -n aks-store
In de volgende voorbeelduitvoer ziet u het gemaakte managed Ingress:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front nginx-internal store-front.private.contoso.com 80 10s
Controleren of de privé-DNS-zone van Azure is bijgewerkt
Voer in een paar minuten de az network private-dns-record-set een lijstopdracht uit om de A-records voor uw privé-DNS-zone van Azure weer te geven. Geef de naam van de resourcegroep en de naam van de DNS-zone op. In dit voorbeeld is de resourcegroep test-rg en is de DNS-zone private.contoso.com.
az network private-dns record-set a list \
--resource-group test-rg \
--zone-name private.contoso.com
In de volgende voorbeelduitvoer ziet u de gemaakte record:
[
{
"aRecords": [
{
"ipv4Address": "10.224.0.7"
}
],
"etag": "ecc303c5-4577-4ca2-b545-d34e160d1c2d",
"fqdn": "store-front.private.contoso.com.",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/test-rg/providers/Microsoft.Network/privateDnsZones/private.contoso.com/A/store-front",
"isAutoRegistered": false,
"name": "store-front",
"resourceGroup": "test-rg",
"ttl": 300,
"type": "Microsoft.Network/privateDnsZones/A"
}
]
Volgende stappen
Voor andere configuratie-informatie met betrekking tot SSL-versleuteling en andere geavanceerde configuraties van de NGINX-ingangscontroller en de configuratie van ingangsresources, bekijkt u de configuratie van DNS en SSL en de add-on configuratie voor toepassingsroutering.