Freigeben über


Tutorial: Aktivieren des Application Gateway-Eingangsdatencontroller-Add-Ons für einen vorhandenen AKS-Cluster mit einem vorhandenen Anwendungsgateway

Mit der Azure CLI oder dem Portal können Sie das Add-on Application Gateway Ingress-Controller (AGIC) für einen bestehenden Azure Kubernetes Services (AKS) Cluster aktivieren. In diesem Tutorial lernen Sie, wie Sie das AGIC-Add-On verwenden, um Ihre Kubernetes-Anwendung in einem bestehenden AKS-Cluster über ein vorhandenes Application Gateway verfügbar zu machen, welches in separaten virtuellen Netzwerken bereitgestellt wurde. Zunächst erstellen Sie einen AKS-Cluster in einem virtuellen Netzwerk und ein Application Gateway in einem anderen virtuellen Netzwerk, um vorhandene Ressourcen zu simulieren. Anschließend aktivieren Sie das AGIC-Add-On, fassen die beiden virtuellen Netzwerke zusammen und stellen eine Beispielanwendung bereit, die über die Application Gateway-Instanz mithilfe des AGIC-Add-Ons verfügbar gemacht wird. Wenn Sie das AGIC-Add-On für ein vorhandenes Application Gateway und einen vorhandenen AKS-Cluster im gleichen virtuellen Netzwerk aktivieren, können Sie den Schritt zum Peering weiter unten überspringen. Das Add-On ermöglicht eine viel schnellere Bereitstellung von AGIC für Ihren AKS-Cluster als das Verfahren mit Helm und bietet außerdem umfassende Verwaltungsfunktionen.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen Sie eine Ressourcengruppe.
  • Erstellen Sie einen neuen AKS-Cluster.
  • Erstellen Sie ein neues Anwendungsgateway.
  • Aktivieren Sie das AGIC-Add-on im vorhandenen AKS-Cluster über die Azure-CLI.
  • Aktivieren Sie AGIC-Add-Ons im vorhandenen AKS-Cluster über das Azure-Portal.
  • Richten Sie das Peering der virtuellen Netzwerke von Anwendungsgateway und AKS-Cluster ein.
  • Stellen Sie eine Beispielanwendung mit AGIC für eingehenden Datenverkehr im AKS-Cluster bereit.
  • Überprüfen der Erreichbarkeit der Anwendung über Application Gateway.

Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.

Voraussetzungen

Erstellen einer Ressourcengruppe

In Azure ordnen Sie verwandte Ressourcen einer Ressourcengruppe zu. Erstellen Sie mit az group create eine Ressourcengruppe. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup am Standort (Region) USA, Osten erstellt:

az group create --name myResourceGroup --location eastus

Bereitstellen eines neuen AKS-Clusters

Sie stellen nun einen neuen AKS-Cluster bereit, um einen vorhandenen AKS-Cluster zu simulieren, für den Sie das AGIC-Add-On aktivieren möchten.

Im folgenden Beispiel stellen Sie einen AKS-Cluster mit dem Namen myCluster über Azure CNI und Verwaltete Identitäten in der von Ihnen erstellten Ressourcengruppe myResourceGroup bereit.

az aks create --name myCluster --resource-group myResourceGroup --network-plugin azure --enable-managed-identity --generate-ssh-keys

Informationen zur Konfiguration weiterer Parameter für den obigen Befehl finden Sie unter az aks create.

Hinweis

Eine Knotenressourcengruppe wird mit dem Namen MC_resource-group-name_cluster-name_location erstellt.

Hinweis

Wenn Sie die Verwendung von AGIC mit einem AKS-Cluster mit CNI Overlay planen, geben Sie den Parameter --aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/AppGatewayWithOverlayPreview zum Konfigurieren von AGIC an, um die Konnektivität mit dem CNI Overlay-aktivierten Cluster zu verarbeiten.

Warnung

In diesem Dokument wird davon ausgegangen, dass Azure CNI im AKS-Cluster installiert ist. Wenn Sie die Verwendung des CNI-Overlays planen, müssen Sie sicherstellen, dass das Anwendungsgateway und der AKS-Cluster Teil desselben virtuellen Netzwerks sind.

Bereitstellen eines neuen Application Gateway

Sie stellen nun ein neues Anwendungsgateway bereit, um ein vorhandenes Anwendungsgateway zu simulieren, das Sie für den Lastenausgleich des Datenverkehrs zum AKS-Cluster myCluster verwenden möchten. Das Application Gateway erhält den Namen myApplicationGateway, Sie müssen jedoch zunächst eine Ressource mit öffentlicher IP-Adresse und dem Namen myPublicIp und ein neues virtuelles Netzwerk mit dem Namen myVnet und dem Adressraum 10.0.0.0/16 erstellen sowie ein Subnetz mit dem Adressraum 10.0.0.0/24 und dem Namen mySubnet. Stellen Sie dann das Application Gateway in mySubnet mithilfe von myPublicIp bereit.

Achtung

Wenn Sie ein AKS-Cluster und ein Application Gateway in separaten virtuellen Netzwerken verwenden, dürfen sich die Adressräume der beiden virtuellen Netzwerke nicht überlappen. Der Standardadressraum, in dem ein AKS-Cluster bereitgestellt wird, ist 10.224.0.0/12.

az network public-ip create --name myPublicIp --resource-group myResourceGroup --allocation-method Static --sku Standard
az network vnet create --name myVnet --resource-group myResourceGroup --address-prefix 10.0.0.0/16 --subnet-name mySubnet --subnet-prefix 10.0.0.0/24 
az network application-gateway create --name myApplicationGateway --resource-group myResourceGroup --sku Standard_v2 --public-ip-address myPublicIp --vnet-name myVnet --subnet mySubnet --priority 100

Hinweis

Das AGIC-Add-On (Application Gateway Ingress Controller, Application Gateway-Eingangscontroller) unterstützt nur Application Gateway v2-SKUs (Standard und WAF) und keine Application Gateway v1-SKUs.

Aktivieren des AGIC-Add-Ons im vorhandenen AKS-Cluster über die Azure CLI

Wenn Sie weiter mit der Azure CLI arbeiten möchten, können Sie nun fortfahren und das AGIC-Add-On in dem von Ihnen erstellten AKS-Cluster myCluster aktivieren und angeben, dass das AGIC-Add-On die vorhandene Application Gateway-Instanz myApplicationGateway verwenden soll, die Sie zuvor erstellt haben.

appgwId=$(az network application-gateway show --name myApplicationGateway --resource-group myResourceGroup -o tsv --query "id") 
az aks enable-addons --name myCluster --resource-group myResourceGroup --addon ingress-appgw --appgw-id $appgwId

Aktivieren des AGIC-Add-Ons im vorhandenen AKS-Cluster über das Azure-Portal

  1. Navigieren Sie auf der Startseite des Azure-Portals zu Ihrer AKS-Clusterressource.
  2. Wählen Sie im Menü „Dienst“ unter Einstellungen die Option Netzwerk>VNet-Integration aus.
  3. Wählen Sie unter Application Gateway-Eingangscontroller die Option Verwalten aus.
  4. Aktivieren Sie auf der Seite Application Gateway-Eingangscontroller das Kontrollkästchen, um den Eingangscontroller zu aktivieren, und wählen Sie dann Ihr vorhandenes Anwendungsgateway aus der Dropdownliste aus.
  5. Wählen Sie Speichern.

Wichtig

Wenn Sie ein Anwendungsgateway in einer anderen Ressourcengruppe als der AKS-Clusterressourcengruppe verwenden, muss die verwaltete Identität ingressapplicationgateway-{AKSNAME}, die erstellt wird, Netzwerk-Mitwirkenden- und Reader-Rollen in der Ressourcengruppe des Anwendungsgateways festgelegt haben.

Peering zwischen den beiden virtuellen Netzwerken

Da der AKS-Cluster in einem eigenen virtuellen Netzwerk und das Application Gateway in einem anderen virtuellen Netzwerk bereitgestellt wurde, müssen Sie die beiden virtuellen Netzwerke per Peering miteinander verknüpfen, damit Datenverkehr vom Application Gateway zu den Pods im Cluster fließt. Für das Peering der beiden virtuellen Netzwerke muss der Azure CLI-Befehl zweimal ausgeführt werden, um sicherzustellen, dass die Verbindung bidirektional ist. Mit dem ersten Befehl wird eine Peeringverbindung vom virtuellen Netzwerk mit dem Application Gateway zum virtuellen AKS-Netzwerk erstellt. Mit dem zweiten Befehl wird eine Peeringverbindung in umgekehrter Richtung erstellt.

nodeResourceGroup=$(az aks show --name myCluster --resource-group myResourceGroup -o tsv --query "nodeResourceGroup")
aksVnetName=$(az network vnet list --resource-group $nodeResourceGroup -o tsv --query "[0].name")

aksVnetId=$(az network vnet show --name $aksVnetName --resource-group $nodeResourceGroup -o tsv --query "id")
az network vnet peering create --name AppGWtoAKSVnetPeering --resource-group myResourceGroup --vnet-name myVnet --remote-vnet $aksVnetId --allow-vnet-access

appGWVnetId=$(az network vnet show --name myVnet --resource-group myResourceGroup -o tsv --query "id")
az network vnet peering create --name AKStoAppGWVnetPeering --resource-group $nodeResourceGroup --vnet-name $aksVnetName --remote-vnet $appGWVnetId --allow-vnet-access

Hinweis

Im Schritt „Bereitstellen eines neuen AKS-Clusters“ haben wir oben AKS mit Azure CNI erstellt. Falls Sie über einen vorhandenen AKS-Cluster mit Kubenet-Modus verfügen, müssen Sie die Routentabelle aktualisieren, damit die Pakete, die für eine POD-IP bestimmt sind, den Knoten erreichen, der den Pod hostet. Eine einfache Möglichkeit, dies zu erreichen, besteht darin, die von AKS erstellte gleiche Routentabelle dem Subnetz des Application Gateway zuzuordnen.

Bereitstellen einer Beispielanwendung mit AGIC

Nun stellen Sie eine Beispielanwendung im erstellten AKS-Cluster bereit, die das AGIC-Add-On für Ingress verwendet, und verbinden das Application Gateway mit dem AKS-Cluster. Zuerst rufen Sie die Anmeldeinformationen für den von Ihnen bereitgestellten AKS-Cluster ab, indem Sie den Befehl az aks get-credentials ausführen.

az aks get-credentials --name myCluster --resource-group myResourceGroup

Sobald Sie über die Anmeldeinformationen für den von Ihnen erstellten Cluster verfügen, führen Sie den folgenden Befehl aus, um eine Beispielanwendung einzurichten, die AGIC für beim Cluster eingehenden Datenverkehr verwendet. AGIC aktualisiert das Application Gateway, das Sie zuvor eingerichtet haben, mit den entsprechenden Routingregeln für die neue Beispielanwendung, die Sie bereitgestellt haben.

kubectl apply -f https://raw.githubusercontent.com/Azure/application-gateway-kubernetes-ingress/master/docs/examples/aspnetapp.yaml 

Überprüfen der Erreichbarkeit der Anwendung

Nachdem das Application Gateway für den Datenverkehr zum AKS-Cluster eingerichtet wurde, überprüfen Sie, ob Ihre Anwendung erreichbar ist. Rufen Sie zunächst die IP-Adresse des eingehenden Datenverkehrs ab.

kubectl get ingress

Überprüfen Sie, ob die von Ihnen erstellte Beispielanwendung ausgeführt wird, indem Sie die IP-Adresse des Application Gateway aufrufen, die Sie mit dem Befehl oben abgerufen haben, oder verwenden Sie curl. Es kann eine Minute dauern, bis das Application Gateway aktualisiert wurde. Wenn der Status des Application Gateway im Azure-Portal also noch „Aktualisieren“ lautet, warten Sie, bis der Vorgang abgeschlossen ist, bevor Sie versuchen, die IP-Adresse zu erreichen.

Bereinigen von Ressourcen

Wenn Sie sie nicht mehr benötigen, löschen Sie alle Ressourcen, die in diesem Lernprogramm erstellt wurden, indem Sie myResourceGroup und MC_myResourceGroup_myCluster_eastus Ressourcengruppen löschen:

az group delete --name myResourceGroup 
az group delete --name MC_myResourceGroup_myCluster_eastus

Nächste Schritte