Delen via


Zelfstudie: Invoegtoepassing voor toegangsbeheerobjectcontroller voor toepassingsgateway inschakelen voor een bestaand AKS-cluster met een bestaande toepassingsgateway

U kunt Azure CLI of portal gebruiken om de AGIC-invoegtoepassing (Application Gateway Ingress Controller) in te schakelen voor een bestaand AKS-cluster (Azure Kubernetes Services). In deze zelfstudie leert u hoe u de AGIC-invoegtoepassing gebruikt om uw Kubernetes-toepassing beschikbaar te maken in een bestaand AKS-cluster via een bestaande toepassingsgateway die is geïmplementeerd in afzonderlijke virtuele netwerken. U begint met het maken van een AKS-cluster in één virtueel netwerk en een toepassingsgateway in een afzonderlijk virtueel netwerk om bestaande resources te simuleren. Vervolgens schakelt u de AGIC-invoegtoepassing in, koppelt u de twee virtuele netwerken aan elkaar en implementeert u een voorbeeldtoepassing die beschikbaar wordt gemaakt via de toepassingsgateway met behulp van de AGIC-invoegtoepassing. Als u de AGIC-invoegtoepassing inschakelt voor een bestaande toepassingsgateway en een bestaand AKS-cluster in hetzelfde virtuele netwerk, kunt u de onderstaande peeringstap overslaan. De invoegtoepassing biedt een veel snellere manier om AGIC voor uw AKS-cluster te implementeren dan via Helm en biedt ook een volledig beheerde ervaring.

In deze zelfstudie leert u het volgende:

  • Een brongroep maken
  • Een nieuw AKS-cluster maken
  • Een nieuwe toepassingsgateway maken
  • De AGIC-invoegtoepassing inschakelen in het bestaande AKS-cluster via Azure CLI
  • De AGIC-invoegtoepassing inschakelen in het bestaande AKS-cluster via Azure Portal
  • Het virtuele netwerk van de toepassingsgateway koppelen aan het virtuele AKS-cluster
  • Een voorbeeldtoepassing implementeren met behulp van AGIC voor inkomend verkeer in het AKS-cluster
  • Controleer of de toepassing bereikbaar is via de toepassingsgateway

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Vereisten

Een brongroep maken

In Azure kunt u verwante resources toewijzen aan een resourcegroep. Maak een resourcegroep met de opdracht az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie VS - oost (regio):

az group create --name myResourceGroup --location eastus

Een nieuw AKS-cluster implementeren

U gaat nu een nieuw AKS-cluster implementeren om te simuleren dat er een bestaand AKS-cluster is waarvoor u de AGIC-invoegtoepassing wilt inschakelen.

In het volgende voorbeeld implementeert u een nieuw AKS-cluster met de naam myCluster met behulp van Azure CNI en beheerde identiteiten in de resourcegroep die u hebt gemaakt, myResourceGroup.

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

Zie az aks create voor meer parameters voor de bovenstaande opdracht.

Notitie

Er wordt een knooppuntresourcegroep gemaakt met de naam MC_resource-group-name_cluster-name_location.

Een nieuwe toepassingsgateway implementeren

U gaat nu een nieuwe toepassingsgateway implementeren om te simuleren dat er een bestaande toepassingsgateway is die u wilt gebruiken om verkeer naar uw AKS-cluster, myCluster, te verdelen. De naam van de toepassingsgateway is myApplicationGateway, maar u moet eerst een openbare IP-resource maken met de naam myPublicIp en een nieuw virtueel netwerk met de naam myVnet met adresruimte 10.0.0.0.0/16 en een subnet met adresruimte 10.0.0.0/24 met de naam mySubnet en uw toepassingsgateway implementeren in mySubnet met myPublicIp.

Let op

Wanneer u een AKS-cluster en toepassingsgateway in afzonderlijke virtuele netwerken gebruikt, mogen de adresruimten van de twee virtuele netwerken niet overlappen. De standaardadresruimte waarin een AKS-cluster wordt geïmplementeerd, is 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

Notitie

De AGIC-invoegtoepassing (Application Gateway InGress Controller) ondersteunt alleen application gateway v2-SKU's (Standard en WAF) en niet de application gateway v1-SKU's.

De AGIC-invoegtoepassing inschakelen in een bestaand AKS-cluster via Azure CLI

Als u Azure CLI wilt blijven gebruiken, kunt u de AGIC-invoegtoepassing blijven inschakelen in het AKS-cluster dat u hebt gemaakt, myCluster en de AGIC-invoegtoepassing opgeven voor het gebruik van de bestaande toepassingsgateway die u hebt gemaakt, myApplicationGateway.

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

Belangrijk

Wanneer u een toepassingsgateway in een andere resourcegroep gebruikt dan de AKS-clusterresourcegroep, moet voor de beheerde identiteit ingressapplicationgateway-{AKSNAME} die is gemaakt de rollen Netwerkbijdrager en Lezer zijn ingesteld in de resourcegroep van de toepassingsgateway.

Koppel de twee virtuele netwerken als peers

Omdat u het AKS-cluster in een eigen virtueel netwerk en de toepassingsgateway in een ander virtueel netwerk hebt geïmplementeerd, moet u de twee virtuele netwerken aan elkaar koppelen om verkeer van de toepassingsgateway naar de pods in het cluster te laten stromen. Voor de peering van de twee virtuele netwerken moet de Azure CLI-opdracht twee keer worden uitgevoerd, om ervoor te zorgen dat de verbinding bi-directioneel is. Met de eerste opdracht maakt u een peeringverbinding van het virtuele Application Gateway-netwerk naar het virtuele AKS-netwerk; met de tweede opdracht wordt een peeringverbinding in de andere richting gemaakt.

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

Notitie

In de stap Een nieuw AKS-cluster implementeren hierboven hebben we AKS gemaakt met Azure CNI, voor het geval u een bestaand AKS-cluster hebt met behulp van de Kubenet-modus , moet u de routetabel bijwerken om de pakketten te helpen die zijn bestemd voor een POD IP-adres het knooppunt te bereiken dat als host fungeert voor de pod. Een eenvoudige manier om dit te bereiken, is door dezelfde routetabel die door AKS is gemaakt, te koppelen aan het subnet van Application Gateway.

Een voorbeeldtoepassing implementeren met behulp van AGIC

U implementeert nu een voorbeeldtoepassing in het AKS-cluster dat u hebt gemaakt en die de AGIC-invoegtoepassing voor inkomend verkeer gebruikt en de toepassingsgateway verbindt met het AKS-cluster. Eerst haalt u referenties op voor het AKS-cluster dat u hebt geïmplementeerd door de opdracht az aks get-credentials uit te voeren.

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

Wanneer i de referenties hebt van het cluster dat u hebt gemaakt, voert u de volgende opdracht uit om een voorbeeldtoepassing in te stellen die gebruikmaakt van AGIC voor inkomend verkeer naar het cluster. AGIC werkt de toepassingsgateway die u eerder hebt ingesteld bij met bijbehorende routeringsregels voor de nieuwe voorbeeldtoepassing die u hebt geïmplementeerd.

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

Controleer of de toepassing bereikbaar is

Nu de toepassingsgateway is ingesteld om verkeer naar het AKS-cluster te verwerken, gaan we controleren of uw toepassing bereikbaar is. U haalt eerst het IP-adres van het inkomende verkeer op.

kubectl get ingress

Controleer of de voorbeeldtoepassing die u hebt gemaakt, actief is door naar het IP-adres van de toepassingsgateway te gaan die u hebt gekregen van het uitvoeren van de bovenstaande opdracht of door dit curlte controleren. Het kan een minuut duren voordat de toepassingsgateway de update heeft, dus als de toepassingsgateway nog steeds de status Bijwerken heeft in Azure Portal, laat u deze voltooien voordat u het IP-adres probeert te bereiken.

Resources opschonen

Wanneer u deze niet meer nodig hebt, verwijdert u alle resources die in deze zelfstudie zijn gemaakt door myResourceGroup en MC_myResourceGroup_myCluster_eastus resourcegroepen te verwijderen:

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

Volgende stappen