Dela via


Tutorial: Aktivera tillägget för ingångskontroll för ett nytt AKS-kluster med en ny instans av applikationsgateway

Du kan använda Azure CLI för att aktivera application gateway-ingresskontrollanten (AGIC)-tillägget för en ny Azure Kubernetes Services (AKS)-kluster.

I den här handledningen kommer du att skapa en AKS-kluster med AGIC-tillägg aktiverat. Att skapa klustret kommer automatiskt att skapa en instans av Azure-applikationsgateway att använda. Du kommer sedan att distribuera en exempelapplikation som kommer att använda tillägget för att exponera applikationen genom applikationsgateway.

Tilläggsprogrammet erbjuder ett mycket snabbare sätt att distribuera AGIC för din AKS-kluster än tidigare genom Helm. Den erbjuder också en helt hanterad upplevelse.

I denna handledning lär du dig hur man:

  • Skapa en resursgrupp.
  • Skapa ett nytt AKS-kluster med AGIC-tillägget aktiverat.
  • Distribuera en exempeltillämpning genom att använda AGIC för ingress på AKS-klustret.
  • Kontrollera att applikationen är tillgänglig genom applikationsgateway.

Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

Skapa en resursgrupp

I Azure tilldelar du relaterade resurser till en resursgrupp. Skapa en resursgrupp med az group create. Följande exempel skapar en resursgrupp med namnet myResourceGroup i East US plats (region):

az group create --name myResourceGroup --location eastus

Distribuera ett AKS-kluster med tillägget aktiverat

Du kommer nu att distribuera ett nytt AKS-kluster med AGIC-tillägget aktiverat. Om du inte tillhandahåller en befintlig instans av applikationsgateway att använda i denna process, kommer du automatiskt att skapa och konfigurera en ny instans av applikationsgateway för att hantera trafik till AKS-klustret.

Anmärkning

Tillägget för ingångskontrollen för applikationsgatewayen stöder endast applikationsgateway v2 SKU:er (Standard och WAF), och inte applikationsgateway v1 SKU:er. När du distribuerar en ny instans av applikationsgateway via AGIC-tillägget kan du endast distribuera applikationsgateway Standard_v2 SKU. Om du vill aktivera tillägget för en Application Gateway WAF_v2 SKU, använd någon av dessa metoder:

I det följande exemplet kommer du att distribuera en ny AKS-kluster med namnet myCluster genom att använda Azure CNI och hanterade identiteter. Tillägget AGIC kommer att aktiveras i resursgruppen som du skapade, myResourceGroup.

Om du distribuerar en ny AKS-kluster med AGIC-tillägget aktiverat utan att specificera en befintlig applikationsgateway-instans kommer det automatiskt att skapa en Standard_v2 SKU-applikationsgateway-instans. Du måste ange ett namn och ett nätverksadressutrymme för det nya applikationsgateway-instansen. Adressutrymmet måste komma från prefixet 10.224.0.0/12 som används av AKS virtuella nätverk utan att överlappa med prefixet 10.224.0.0/16 som används av AKS subnet. I den här handledningen, använd myApplicationGateway som namn för applikationsgatewayen och 10.225.0.0/16 som adressutrymme för dess undernät.

az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity -a ingress-appgw --appgw-name myApplicationGateway --appgw-subnet-cidr "10.225.0.0/16" --generate-ssh-keys

Anmärkning

Se till att identiteten som används av AGIC har rätt behörigheter. En lista över behörigheter som krävs av identiteten finns här: Configure Infrastructure - Permissions. Om en anpassad roll inte är definierad med de nödvändiga behörigheterna kan du använda rollen Network Contributor.

# Get application gateway id from AKS addon profile
appGatewayId=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.config.effectiveApplicationGatewayId")

# Get Application Gateway subnet id
appGatewaySubnetId=$(az network application-gateway show --ids $appGatewayId -o tsv --query "gatewayIPConfigurations[0].subnet.id")

# Get AGIC addon identity
agicAddonIdentity=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.identity.clientId")

# Assign network contributor role to AGIC addon identity to subnet that contains the Application Gateway
az role assignment create --assignee $agicAddonIdentity --scope $appGatewaySubnetId --role "Network Contributor"

För att konfigurera fler parametrar för ovanstående kommando, se az aks create.

Anmärkning

AKS-klustret som du har skapat kommer att visas i den resursgrupp som du har skapat, myResourceGroup. Den automatiskt skapade applikationsgateway-instansen kommer dock att finnas i nodens resursgrupp, där agentpoolerna är. Nodens resursgrupp heter som standard MC_resource-group-name_cluster-name_location, men kan ändras.

Distribuera en exempelapplikation med hjälp av AGIC

Nu kommer du att distribuera en exempelapplikation till den AKS-kluster som du skapade. Applikationen kommer att använda AGIC-tillägget för ingress och ansluta applikationsgateway-instansen till AKS-klustret.

Först, hämta autentiseringsinformation till AKS-klustret genom att köra kommandot az aks get-credentials.

az aks get-credentials -n myCluster -g myResourceGroup

Nu när du har autentiseringsuppgifter, kör följande kommando för att ställa in en exempelapplikation som använder AGIC för ingress till klustret. AGIC kommer att uppdatera den applikationsgatewayinstans som du tidigare satt upp med motsvarande routingregler för den exempelapplikation du distribuerar.

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

Kontrollera att applikationen är tillgänglig

Nu när applikationsgateway-instansen är inställd för att hantera trafik till AKS-klustret, låt oss kontrollera att din applikation är åtkomlig. Först, hämta IP-adressen för ingången.

kubectl get ingress

Kontrollera att det exempelprogram som du skapade körs genom att:

  • Besök IP-adressen för applikationsgateway-instansen som du fick från att ha kört det föregående kommandot.
  • Använder curl.

Applikationsgateway kan ta en minut att få uppdateringen. Om applikationsgateway fortfarande är i ett Uppdateras status på portalen, låt det avsluta innan du försöker nå IP-adressen.

Rensa resurser

När du inte längre behöver dem, ta bort alla resurser som skapats i denna handledning genom att radera resursgrupperna myResourceGroup och MC_myResourceGroup_myCluster_eastus.

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

Nästa steg

I den här handledningen kommer du att:

  • Skapat nytt AKS-kluster med AGIC-tillägget aktiverat
  • Använd en AGIC för att hantera ingress och sätta igång en testapplikation på AKS-klustret

För att lära dig mer om AGIC, se Vad är Application Gateway Ingress Controller och Inaktivera och återaktivera AGIC-tillägget för din AKS-kluster.

För att lära dig hur du aktiverar tillägget för applikationsgatewayens ingångskontrollerare för ett befintligt AKS-kluster med en befintlig applikationsgateway, gå vidare till nästa handledning.