Freigeben über


Verwalteter NGINX-Eingang mit dem Anwendungsrouting-Add-On

Eine Möglichkeit zum Weiterleiten von HTTP- (Hypertext Transfer Protocol) und HTTPS-Datenverkehr (sicheres HTTP) an Anwendungen in einem AKS-Cluster (Azure Kubernetes Service) stellt die Verwendung des Kubernetes-Eingangsobjekts dar. Wenn Sie ein Eingangsobjekt erstellen, das die NGINX-Eingangsklassen des Anwendungsrouting-Add-Ons verwendet, erstellt, konfiguriert und verwaltet das Add-On mindestens einen Eingangsdatencontroller in Ihrem AKS-Cluster.

In diesem Artikel erfahren Sie, wie Sie einen einfachen Eingangsdatencontroller in Ihrem AKS-Cluster bereitstellen und konfigurieren.

Anwendungsrouting-Add-On mit NGINX-Features

Das Anwendungsrouting-Add-On mit NGINX ermöglicht Folgendes:

  • Einfache Konfiguration von verwalteten NGINX-Eingangsdatencontrollern basierend auf NGINX-Eingangsdatencontrollern für Kubernetes
  • Integration in Azure DNS für die Verwaltung öffentlicher und privater Zonen
  • SSL-Beendigung mit Zertifikaten, die in Azure Key Vault gespeichert sind

Weitere Konfigurationen finden Sie unter:

Mit der Einstellung von Open Service Mesh (OSM) durch die Cloud Native Computing Foundation (CNCF) ist die Verwendung des Anwendungsrouting-Add-Ons mit OSM nicht empfehlenswert.

Voraussetzungen

  • Ein Azure-Abonnement. Falls Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.
  • Version 2.54.0 oder höher der Azure CLI installiert und konfiguriert. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.

Einschränkungen

  • Das Anwendungsrouting-Add-On unterstützt bis zu fünf Azure DNS-Zonen.
  • Das Anwendungsrouting-Add-On kann nur auf AKS-Clustern mit verwalteter Identitätaktiviert werden.
  • Alle globalen Azure DNS-Zonen, die in das Add-On integriert sind, müssen sich in derselben Ressourcengruppe befinden.
  • Alle privaten Azure DNS-Zonen, die in das Add-On integriert sind, müssen sich in derselben Ressourcengruppe befinden.
  • Das Bearbeiten des Eingangs-NGINX ConfigMap im app-routing-system-Namespace wird nicht unterstützt.
  • Die folgenden Codeausschnittanmerkungen werden blockiert und verhindern, dass ein Ingress konfiguriert wird: load_module, lua_package, _by_lua, location, root, proxy_pass, serviceaccount, {, }, '.

Aktivieren von Anwendungsrouting mithilfe der Azure CLI

Aktivieren in einem neuen Cluster

Um das Anwendungsrouting in einem neuen Cluster zu aktivieren, verwenden Sie den Befehl az aks create und geben Sie die Flag --enable-app-routing an.

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

Aktivieren in einem vorhandenen Cluster

Führen Sie zum Aktivieren von Anwendungsrouting auf einem vorhandenen Cluster den Befehl az aks approuting enable aus.

az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>

Herstellen einer Verbindung mit dem AKS-Cluster

Zum Herstellen der Verbindung mit dem Kubernetes-Cluster auf Ihrem lokalen Computer verwenden Sie den Kubernetes-Befehlszeilenclient kubectl. Mit dem az aks install-cli-Befehl können Sie es lokal installieren. Wenn Sie Azure Cloud Shell verwenden, ist kubectl bereits installiert.

Mit dem Befehl az aks get-credentials können Sie kubectl für die Verbindungsherstellung mit Ihrem Kubernetes-Cluster konfigurieren.

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

Bereitstellen von Anwendungen

Das Anwendungsrouting-Add-On verwendet Anmerkungen für Kubernetes-Eingangsobjekte, um die zugehörigen Ressourcen zu erstellen.

  1. Erstellen Sie den Anwendungsnamespace aks-store, um die Beispielpods mit dem Befehl kubectl create namespace auszuführen.

    kubectl create namespace aks-store
    
  2. Stellen Sie die AKS Store-Anwendung mithilfe der folgenden YAML-Manifestdatei bereit:

    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
    

Dieses Manifest erstellt die erforderlichen Bereitstellungen und Dienste für die AKS Store-Anwendung.

Erstellen des Eingangsobjekts

Das Anwendungsrouting-Add-On erstellt eine Eingangsklasse im Cluster mit Namen webapprouting.kubernetes.azure.com. Wenn Sie ein Eingangsobjekt mit dieser Klasse erstellen, aktiviert es das Add-On.

  1. Kopieren Sie das folgende YAML-Manifest in eine neue Datei namens ingress.yaml, und speichern Sie die Datei auf Ihrem lokalen Computer.

    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. Erstellen Sie die Eingangsressource mit dem Befehl kubectl apply.

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

    In der folgenden Beispielausgabe sehen Sie die erstellten Ressourcen:

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

Überprüfen, ob der verwaltete Eingang erstellt wurde

Überprüfen Sie mithilfe des Befehls kubectl get ingress, ob der verwaltete Eingang erstellt wurde.

kubectl get ingress -n aks-store

Die folgende Beispielausgabe zeigt den erstellten verwalteten Eingang:

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

Sie können überprüfen, ob der AKS-Speicher funktioniert, indem Sie Ihren Browser auf die öffentliche IP-Adresse des Ingress-Controllers verweisen. Suchen Sie die IP-Adresse mit kubectl:

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

Entfernen des Anwendungsrouting-Add-Ons

Entfernen Sie den zugeordneten Namespace mithilfe des Befehls kubectl delete namespace.

kubectl delete namespace aks-store

Entfernen Sie das Anwendungsrouting-Add-On mithilfe des Befehls az aks approuting disable aus Ihrem Cluster.

az aks approuting disable --name <ClusterName> --resource-group <ResourceGroupName>

Hinweis

Um potenzielle Unterbrechungen des Datenverkehrs in den Cluster zu vermeiden, wenn das Anwendungsrouting-Add-On deaktiviert ist, verbleiben einige Kubernetes-Ressourcen, einschließlich configMaps, geheime Schlüssel und die Bereitstellung, die den Controller ausführt, im Cluster. Diese Ressourcen befinden sich im Namespace des App-Routing-Systems. Sie können diese Ressourcen entfernen, wenn sie nicht mehr benötigt werden, indem Sie den Namespace mit kubectl delete ns app-routing-system löschen.

Nächste Schritte