Beheerd NGINX-inkomend verkeer met de invoegtoepassing voor toepassingsroutering

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:

Een manier om Hypertext Transfer Protocol (HTTP) en beveiligd (HTTPS)-verkeer te routeren naar toepassingen die worden uitgevoerd op een AKS-cluster (Azure Kubernetes Service), is het kubernetes-object voor inkomend verkeer te gebruiken. Wanneer u de invoegtoepassing voor toepassingsroutering inschakelt met NGINX, wordt er een controller voor inkomend verkeer in uw AKS-cluster gemaakt, geconfigureerd en beheerd.

In dit artikel leest u hoe u de beheerde NGINX-ingangscontroller inschakelt en een inkomend object configureert om verkeer naar een toepassing in uw AKS-cluster te routeren.

Invoegtoepassing voor toepassingsroutering met NGINX-functies

De invoegtoepassing voor toepassingsroutering met NGINX levert het volgende:

  • Eenvoudige configuratie van beheerde NGINX-ingangscontrollers op basis van kubernetes NGINX-ingangscontroller.
  • Integratie met Azure DNS voor beheer van openbare en privézones.
  • SSL-beëindiging met certificaten die zijn opgeslagen in Azure Key Vault.

Zie voor andere configuraties:

Belangrijk

Vanaf 30 september 2027 ondersteunt Azure Kubernetes Service (AKS) de invoegtoepassing Open Service Mesh (OSM) niet meer. Het upstream Open Service Mesh-project is buiten gebruik gesteld.

Als uw cluster gebruikmaakt van de OSM-invoegtoepassing, migreert u naar de Istio-invoegtoepassing vóór de einddatum van de ondersteuning. Deze buitengebruikstellingsmelding is alleen van toepassing op de beheerde OSM-invoegtoepassing en heeft geen betrekking op opensource- of zelfbeheerde mesh-installaties. Zie Migratierichtlijnen van de OSM-invoegtoepassing naar de Istio-invoegtoepassing voor migratiestappen. Als u op de hoogte wilt blijven van AKS-aankondigingen en updates, volgt u de opmerkingen bij de AKS-release.

Prerequisites

  • Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.
  • Azure CLI versie 2.54.0 of hoger geïnstalleerd en geconfigureerd. Voer az --version uit om de versie te vinden. Als u Azure CLI wilt installeren of upgraden, raadpleegt u Azure CLI installeren.

Limitations

  • De invoegtoepassing voor toepassingsroutering ondersteunt maximaal vijf Azure DNS-zones.

  • De invoegtoepassing voor toepassingsroutering kan alleen worden ingeschakeld op AKS-clusters met beheerde identiteit.

  • Alle globale Azure DNS-zones die zijn geïntegreerd met de invoegtoepassing, moeten zich in dezelfde resourcegroep bevinden.

  • Alle privé-Azure DNS-zones die zijn geïntegreerd met de invoegtoepassing, moeten zich in dezelfde resourcegroep bevinden.

  • Het bewerken van de ingress-nginx ConfigMap in de app-routing-system naamruimte wordt niet ondersteund.

  • Als een fragmentaantekeningswaarde overeenkomt met een van de volgende geblokkeerde waarden, is het inkomend verkeer niet geconfigureerd:

    Geblokkeerde waarde Effect
    load_module Het toegangsbeheerobject is niet geconfigureerd.
    lua_package Het toegangsbeheerobject is niet geconfigureerd.
    _by_lua Het toegangsbeheerobject is niet geconfigureerd.
    location Het toegangsbeheerobject is niet geconfigureerd.
    root Het toegangsbeheerobject is niet geconfigureerd.
    proxy_pass Het toegangsbeheerobject is niet geconfigureerd.
    serviceaccount Het toegangsbeheerobject is niet geconfigureerd.
    { Het toegangsbeheerobject is niet geconfigureerd.
    } Het toegangsbeheerobject is niet geconfigureerd.
    ' Het toegangsbeheerobject is niet geconfigureerd.
  • De invoegtoepassing biedt geen officieel ondersteuning voor het injecteren van niet-Microsoft beheerde sidecars (bijvoorbeeld aangepaste telemetrie-, logboekregistratie- of beveiligingsagents) in de ingress-nginx-proxypods die worden beheerd. Als u ervoor kiest om uw eigen sidecar in een beheerde proxypod te injecteren, biedt Microsoft alleen best effort-ondersteuning voor eventuele problemen die u ondervindt.

Schakel de invoegtoepassing voor toepassingsroutering in met behulp van Azure CLI

Inschakelen op een nieuw cluster

Als u toepassingsroutering op een nieuw cluster wilt inschakelen, gebruikt u de az aks create opdracht en geeft u de --enable-app-routing vlag op.

az aks create \
    --resource-group <resource-group-name> \
    --name <cluster-name> \
    --location <location> \
    --enable-app-routing \
    --generate-ssh-keys

Inschakelen op een bestaand cluster

Gebruik de az aks approuting enable opdracht om toepassingsroutering in te schakelen op een bestaand cluster.

az aks approuting enable --resource-group <resource-group-name> --name <cluster-name>

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 az aks install-cli opdracht. Als u Azure Cloud Shell gebruikt, is kubectl al geïnstalleerd.

Configureer kubectl om verbinding te maken met uw Kubernetes-cluster met behulp van het az aks get-credentials commando.

az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>

Een app implementeren

Kubernetes-objecten voor inkomend verkeer definiëren routeringsregels voor een controller voor inkomend verkeer. Gebruik de beheerde toegangsbeheerklasse van de invoegtoepassing voor toepassingsroutering en ondersteunde aantekeningen om te configureren hoe de controller verkeer verwerkt.

  1. Maak de toepassingsnaamruimte genaamd aks-store om de voorbeeldpods uit te voeren met de opdracht kubectl create namespace.

    kubectl create namespace aks-store
    
  2. Implementeer 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 implementaties order-serviceproduct-serviceen bijbehorende services gemaaktrabbitmq, en store-front geïmplementeerd. De store-front service maakt poort 80 beschikbaar, waarnaar het toegangsbeheerobject wordt gerouteerd in de volgende sectie.

Het Ingress-object maken

Wanneer u de invoegtoepassing voor toepassingsroutering inschakelt, wordt er een toegangsbeheerklasse met de naam webapprouting.kubernetes.azure.com gemaakt. Geef deze klasse op in een inkomend object om de beheerde NGINX-ingangscontroller van de invoegtoepassing te gebruiken.

  1. 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: webapprouting.kubernetes.azure.com
      rules:
      - http:
          paths:
          - backend:
              service:
                name: store-front
                port:
                  number: 80
            path: /
            pathType: Prefix
    
  2. Maak de ingress-resource met behulp van de kubectl apply commando.

    kubectl apply -f ingress.yaml -n aks-store
    

    In de volgende voorbeelduitvoer ziet u de gemaakte resource:

    ingress.networking.k8s.io/store-front created
    

De beheerde toegangsbeheerresource controleren

U kunt verifiëren of het beheerde Ingress is gemaakt met behulp van het kubectl get ingress commando.

kubectl get ingress -n aks-store

In de volgende voorbeelduitvoer ziet u de aangemaakte managed Ingress:

NAME          CLASS                                HOSTS   ADDRESS       PORTS   AGE
store-front   webapprouting.kubernetes.azure.com   *       51.8.10.109   80      110s

U kunt controleren of het AKS-archief werkt door uw browser naar het openbare IP-adres van de ingangscontroller te wijzen. Met de volgende opdracht wordt het externe IP-adres opgehaald dat door de load balancer is toegewezen aan de service van nginx de beheerde NGINX-ingangscontroller in de app-routing-system naamruimte:

kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"

De invoegtoepassing voor toepassingsroutering verwijderen

Gebruik de kubectl delete namespace opdracht om de bijbehorende naamruimte te verwijderen.

kubectl delete namespace aks-store

Gebruik de az aks approuting disable opdracht om de invoegtoepassing voor toepassingsroutering uit uw cluster te verwijderen.

az aks approuting disable --name <cluster-name> --resource-group <resource-group-name>

Opmerking

Om potentiële onderbreking van verkeer in het cluster te voorkomen wanneer u de invoegtoepassing voor toepassingsroutering uitschakelt, blijven sommige Kubernetes-resources, waaronder configMaps, geheimen en de implementatie waarop de controller wordt uitgevoerd, op het cluster aanwezig. Deze resources bevinden zich in de naamruimte van het app-routeringssysteem . U kunt deze middelen verwijderen als ze niet meer nodig zijn door de naamruimte te verwijderen met kubectl delete ns app-routing-system.