Share via


Beheerd NGINX-inkomend verkeer met de invoegtoepassing voor toepassingsroutering

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 een inkomend object maakt dat gebruikmaakt van de NGINX-ingressklassen voor toepassingsroutering, maakt, configureert en beheert de invoegtoepassing een of meer ingangscontrollers in uw AKS-cluster.

In dit artikel leest u hoe u een eenvoudige ingangscontroller in uw AKS-cluster implementeert en configureert.

Invoegtoepassing voor toepassingsroutering met NGINX-functies

De invoegtoepassing voor toepassingsroutering met NGINX levert het volgende:

Zie voor andere configuraties:

Met de buitengebruikstelling van Open Service Mesh (OSM) door de Cloud Native Computing Foundation (CNCF) wordt het gebruik van de invoegtoepassing voor toepassingsroutering met OSM niet aanbevolen.

Vereisten

  • 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 bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Beperkingen

  • 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.
  • De volgende fragmentaantekeningen worden geblokkeerd en voorkomen dat een inkomend verkeer wordt geconfigureerd: load_module, , lua_package, _by_lua, , location, root, , proxy_pass, serviceaccount, , {, , }. '

Toepassingsroutering inschakelen 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 <ResourceGroupName> \
    --name <ClusterName> \
    --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 <ResourceGroupName> --name <ClusterName>

Verbinding maken met uw AKS-cluster

Gebruik kubectl, de Kubernetes-opdrachtregelclient, als u vanaf uw lokale computer verbinding wilt maken met het Kubernetes-cluster. 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 deze om verbinding te maken met uw Kubernetes-cluster met behulp van de opdracht az aks get-credentials .

az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>

Een app implementeren

De invoegtoepassing voor toepassingsroutering maakt gebruik van aantekeningen op Kubernetes Ingress-objecten om de juiste resources te maken.

  1. Maak de toepassingsnaamruimte die wordt aangeroepen aks-store om de voorbeeldpods uit te voeren met behulp van de kubectl create namespace opdracht.

    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 de benodigde implementaties en services voor de AKS-archieftoepassing gemaakt.

Het object Inkomend verkeer maken

De invoegtoepassing voor toepassingsroutering maakt een toegangsbeheerobjectklasse op het cluster met de naam webapprouting.kubernetes.azure.com. Wanneer u een inkomend object met deze klasse maakt, wordt de invoegtoepassing geactiveerd.

  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 toegangsbeheerobjectresource met behulp van de kubectl apply opdracht.

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

    In de volgende voorbeelduitvoer ziet u de gemaakte resource:

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

Controleren of het beheerde inkomend verkeer is gemaakt

U kunt controleren of het beheerde inkomend verkeer is gemaakt met behulp van de kubectl get ingress opdracht.

kubectl get ingress -n aks-store

In de volgende voorbeelduitvoer ziet u het gemaakte beheerde inkomend verkeer:

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 en uw browser verwijst naar het openbare IP-adres van de controller voor inkomend verkeer. Zoek het IP-adres met kubectl:

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 <ClusterName> --resource-group <ResourceGroupName>

Notitie

Om potentiële onderbreking van verkeer in het cluster te voorkomen wanneer de invoegtoepassing voor toepassingsroutering is uitgeschakeld, 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 resources verwijderen als ze niet meer nodig zijn door de naamruimte met kubectl delete ns app-routing-system.

Volgende stappen