Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Försiktighet
Kubernetes SIG Network och Security Response Committee tillkännagav den kommande avvecklingen av Ingress NGINX-projektet, med underhåll som slutar i mars 2026. Det krävs ingen omedelbar åtgärd i dag för AKS-kluster som använder tillägget för programroutning med NGINX. Microsoft tillhandahåller officiellt stöd för kritiska säkerhetskorrigeringar för tillägg för applikationsrouting av NGINX Ingress-resurser till november 2026.
AKS alignerar sig med uppströms Kubernetes genom att flytta till Gateway API som den långsiktiga standarden för ingress och L7-trafikhantering. Vi rekommenderar att du börjar planera migreringsvägen baserat på din aktuella konfiguration:
- Tilläggsanvändare för programroutning: Produktionsarbetsbelastningar stöds fortfarande fullt ut till och med november 2026. Migrera till Gateway API-implementeringen för programdirigering för en Gateway API-baserad hantering av inkommande trafik.
-
OSS NGINX-användare har flera alternativ:
- Migrera till tillägget för programroutning med NGINX för att dra nytta av officiell support till och med november 2026 när du planerar din långsiktiga gateway-API-migrering.
- Migrera till Gateway API-implementeringen för programdirigering för en Gateway API-baserad hantering av inkommande trafik.
- Migrera till Application Gateway för containrar, som stöder både Ingress-API och gateway-API.
- Användare av servicenät: Om du planerar att använda ett tjänstnät bör du överväga det Istio-baserade service mesh-tillägget. Använd Istio Ingress i dag och planera att migrera till Istio Gateway-API:et, som nu är allmänt tillgängligt.
Ett sätt att dirigera HTTP-trafik (Hypertext Transfer Protocol) och säker (HTTPS)-trafik till program som körs i ett AKS-kluster (Azure Kubernetes Service) är att använda Kubernetes-ingressobjektet. När du aktiverar tillägget för programroutning med NGINX skapas, konfigureras och hanteras en ingresskontrollant i AKS-klustret.
Den här artikeln visar hur du aktiverar den hanterade NGINX-ingresskontrollanten och konfigurerar ett inkommande objekt för att dirigera trafik till ett program i aks-klustret.
Tillägg för programroutning med NGINX-funktioner
Tillägget för programroutning med NGINX levererar följande:
- Enkel konfiguration av hanterade NGINX-ingresskontrollanter baserat på Kubernetes NGINX-ingresskontrollant.
- Integrering med Azure DNS för offentlig och privat zonhantering.
- SSL-avslutning med certifikat som lagras i Azure Key Vault.
Andra konfigurationer finns i:
- DNS- och SSL-konfiguration.
- Tilläggskonfiguration för programroutning.
- Konfigurera intern NGINX-ingresskontrollant för Azure privat DNS-zon.
Viktigt!
Från och med den 30 september 2027 stöder Azure Kubernetes Service (AKS) inte längre tillägget Open Service Mesh (OSM). Det överordnade Open Service Mesh-projektet har dragits tillbaka.
Om klustret använder OSM-tillägget migrerar du till Istio-tillägget före sista supportdatumet. Det här avregistreringsmeddelandet gäller endast för det hanterade OSM-tillägget och hanterar inte installationer med nät med öppen källkod eller självhanterade servicenät. Information om migreringssteg finns i Migreringsvägledning från OSM-tillägget till Istio-tillägget. Om du vill hålla dig informerad om AKS-meddelanden och -uppdateringar följer du AKS-viktig information.
Prerequisites
- Ett Azure-abonnemang. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
- Azure CLI version 2.54.0 eller senare installerad och konfigurerad. Kör
az --versionför att hitta versionen. Om du behöver installera eller uppgradera, se Installera Azure CLI.
Limitations
Tillägget för programroutning stöder upp till fem Azure DNS-zoner.
Tillägget för programroutning kan bara aktiveras i AKS-kluster med hanterad identitet.
Alla globala Azure DNS-zoner som är integrerade med tillägget måste finnas i samma resursgrupp.
Alla privata Azure DNS-zoner som är integrerade med tillägget måste finnas i samma resursgrupp.
Det går inte att redigera ingress-nginx
ConfigMapiapp-routing-systemnamnområdet.Om ett kodfragmentanteckningsvärde matchar något av följande blockerade värden är ingressen inte konfigurerad:
Blockerat värde Effect load_moduleIngressen har inte konfigurerats. lua_packageIngressen har inte konfigurerats. _by_luaIngressen har inte konfigurerats. locationIngressen har inte konfigurerats. rootIngressen har inte konfigurerats. proxy_passIngressen har inte konfigurerats. serviceaccountIngressen har inte konfigurerats. {Ingressen har inte konfigurerats. }Ingressen har inte konfigurerats. 'Ingressen har inte konfigurerats. Tillägget stöder inte officiellt injicering av icke-Microsoft-hanterade sidovagnar (till exempel anpassad telemetri, loggning eller säkerhetsagenter) i ingress-nginx-proxypoddar som hanteras. Om du väljer att mata in din egen sidovagn i en hanterad proxypodd ger Microsoft endast bästa möjliga stöd för eventuella problem du stöter på.
Aktivera tillägget för programroutning med hjälp av Azure CLI
Aktivera i ett nytt kluster
Om du vill aktivera programroutning i ett nytt kluster använder du az aks create kommandot och anger --enable-app-routing flaggan.
az aks create \
--resource-group <resource-group-name> \
--name <cluster-name> \
--location <location> \
--enable-app-routing \
--generate-ssh-keys
Aktivera i ett befintligt kluster
Om du vill aktivera programroutning i ett befintligt kluster använder du az aks approuting enable kommandot .
az aks approuting enable --resource-group <resource-group-name> --name <cluster-name>
Ansluta till ditt AKS-kluster
Om du vill ansluta till Kubernetes-klustret från den lokala datorn använder kubectldu kubernetes-kommandoradsklienten. Du kan installera den lokalt med hjälp av az aks install-cli kommandot . Om du använder Azure Cloud Shell är kubectl redan installerat.
Konfigurera kubectl för att ansluta till kubernetes-klustret med hjälp av az aks get-credentials kommandot .
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
Distribuera ett program
Kubernetes-ingressobjekt definierar routningsregler för en ingresskontrollant. Använd programdirigeringstilläggets hanterade ingressklass och anteckningar som stöds för att konfigurera hur dess kontrollant hanterar trafik.
Skapa programnamnområdet med namnet
aks-storeför att köra exempelpoddar med kommandotkubectl create namespace.kubectl create namespace aks-storeDistribuera AKS Store-programmet med hjälp av följande YAML-manifestfil:
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
Det här manifestet skapar rabbitmq, order-service, product-serviceoch store-front distributioner och motsvarande tjänster. Tjänsten store-front exponerar port 80, som ingressvägarna till i nästa avsnitt.
Skapa ingressobjektet
När du aktiverar tillägget för programroutning skapas en ingressklass med namnet webapprouting.kubernetes.azure.com. Ange den här klassen i ett inkommande objekt för att använda tilläggets hanterade NGINX-ingresskontrollant.
Kopiera följande YAML-manifest till en ny fil med namnet ingress.yaml och spara filen på den lokala datorn.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: PrefixSkapa ingressresursen
kubectl applymed kommandot .kubectl apply -f ingress.yaml -n aks-storeFöljande exempelutdata visar den skapade resursen:
ingress.networking.k8s.io/store-front created
Verifiera den hanterade ingressresursen
Du kan kontrollera att den hanterade Ingress har skapats med hjälp av kommandot kubectl get ingress.
kubectl get ingress -n aks-store
Följande exempelutdata visar den skapade hanterade ingressen:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
Du kan kontrollera att AKS-arkivet fungerar genom att peka webbläsaren mot den offentliga IP-adressen för ingresskontrollanten. Följande kommando hämtar den externa IP-adress som tilldelats av lastbalanseraren till den hanterade NGINX-ingresskontrollantens nginxapp-routing-system tjänst i namnområdet:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Ta bort tillägget för programroutning
Om du vill ta bort det associerade namnområdet använder du kubectl delete namespace kommandot .
kubectl delete namespace aks-store
Om du vill ta bort tillägget för programroutning från klustret använder du az aks approuting disable kommandot .
az aks approuting disable --name <cluster-name> --resource-group <resource-group-name>
Note
För att undvika potentiella trafikstörningar i klustret när du inaktiverar tillägget för programroutning finns vissa Kubernetes-resurser, inklusive configMaps, hemligheter och distributionen som kör kontrollanten, kvar i klustret. Dessa resurser finns i namnområdet app-routing-system . Du kan ta bort dessa resurser om de inte längre behövs genom att ta bort namnområdet med kubectl delete ns app-routing-system.
Relaterat innehåll
- Aktivera Gateway API-implementationen för programdirigering för att hantera inkommande trafik med Kubernetes Gateway API.
- Konfigurera anpassade ingresskonfigurationer visar hur du skapar en avancerad ingresskonfiguration. Konfigurera en anpassad domän med hjälp av Azure DNS för att hantera DNS-zoner och konfigurera en säker ingress.
- Information om hur du integrerar med en intern Azure-lastbalanserare och konfigurerar en privat Azure DNS-zon för att aktivera DNS-matchning för de privata slutpunkterna för att matcha specifika domäner finns i Konfigurera intern NGINX-ingresskontrollant för Azures privata DNS-zon.
- Lär dig mer om övervakning av ingress-nginx-kontrollantmåtten som ingår i tillägget för programroutning med Prometheus i Grafana (förhandsversion) som en del av analysen av programmets prestanda och användning.