Självstudie: Aktivera ingresskontrollanttillägget för ett nytt AKS-kluster med en ny programgatewayinstans

Du kan använda Azure CLI för att aktivera agic-tillägget (application gateway ingress controller) för ett nytt AkS-kluster (Azure Kubernetes Services).

I den här självstudien skapar du ett AKS-kluster med AGIC-tillägget aktiverat. När du skapar klustret skapas automatiskt en Azure Application Gateway-instans som ska användas. Sedan distribuerar du ett exempelprogram som använder tillägget för att exponera programmet via programgatewayen.

Tillägget ger ett mycket snabbare sätt att distribuera AGIC för ditt AKS-kluster än tidigare via Helm. Det erbjuder också en fullständigt hanterad upplevelse.

I den här självstudien lär du dig att:

  • Skapa en resursgrupp.
  • Skapa ett nytt AKS-kluster med AGIC-tillägget aktiverat.
  • Distribuera ett exempelprogram med hjälp av AGIC för ingress i AKS-klustret.
  • Kontrollera att programmet kan nås via programgatewayen.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Förutsättningar

Skapa en resursgrupp

I Azure allokerar du relaterade resurser till en resursgrupp. Skapa en resursgrupp med hjälp av az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen USA , östra (region):

az group create --name myResourceGroup --location eastus

Distribuera ett AKS-kluster med tillägget aktiverat

Nu ska du distribuera ett nytt AKS-kluster med AGIC-tillägget aktiverat. Om du inte anger en befintlig programgatewayinstans som ska användas i den här processen skapar och konfigurerar du automatiskt en ny application gateway-instans för att hantera trafik till AKS-klustret.

Kommentar

Tillägget för ingresskontrollanten för programgatewayen stöder endast programgateway v2 SKU:er (Standard och WAF) och inte SKU:er för application gateway v1. När du distribuerar en ny programgatewayinstans via AGIC-tillägget kan du bara distribuera en programgateway Standard_v2 SKU. Om du vill aktivera tillägget för en programgateway WAF_v2 SKU använder du någon av följande metoder:

I följande exempel distribuerar du ett nytt AKS-kluster med namnet myCluster med hjälp av Azure CNI och hanterade identiteter. AGIC-tillägget aktiveras i resursgruppen som du skapade, myResourceGroup.

Om du distribuerar ett nytt AKS-kluster med AGIC-tillägget aktiverat utan att ange en befintlig programgatewayinstans skapas automatiskt en Standard_v2 instans av SKU-programgatewayen. Du måste ange ett namn och adressutrymme för undernätet för den nya application gateway-instansen. Adressutrymmet måste vara från prefixet 10.224.0.0/12 som används av det virtuella AKS-nätverket utan att överlappa med prefixet 10.224.0.0/16 som används av AKS-undernätet. I den här självstudien använder du myApplicationGateway för namnet på programgatewayen och 10.225.0.0/16 för dess undernätsadressutrymme.

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

[OBS!] Kontrollera att den identitet som används av AGIC har behörigheten Microsoft.Network/virtualNetworks/subnets/join/action som delegerats till undernätet Application Gateway har distribuerats till. Om en anpassad roll inte har definierats med den här behörigheten kan du använda den inbyggda rollen Nätverksdeltagare , som innehåller behörigheten Microsoft.Network/virtualNetworks/subnets/join/action .

# 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"

Mer information om hur du konfigurerar fler parametrar för kommandot ovan finns i az aks create.

Kommentar

AKS-klustret som du skapade visas i resursgruppen som du skapade, myResourceGroup. Den automatiskt skapade programgatewayinstansen finns dock i nodresursgruppen, där agentpoolerna finns. Nodresursgruppen heter MC_resource-group-name_cluster-name_location som standard, men kan ändras.

Distribuera ett exempelprogram med hjälp av AGIC

Nu ska du distribuera ett exempelprogram till det AKS-kluster som du skapade. Programmet använder AGIC-tillägget för ingress och ansluter application gateway-instansen till AKS-klustret.

Hämta först autentiseringsuppgifter till AKS-klustret genom att az aks get-credentials köra kommandot:

az aks get-credentials -n myCluster -g myResourceGroup

Nu när du har autentiseringsuppgifter kör du följande kommando för att konfigurera ett exempelprogram som använder AGIC för ingress till klustret. AGIC uppdaterar den programgatewayinstans som du konfigurerade tidigare med motsvarande routningsregler till exempelprogrammet som du distribuerar.

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

Kontrollera att programmet kan nås

Nu när programgatewayinstansen har konfigurerats för att hantera trafik till AKS-klustret ska vi kontrollera att programmet kan nås. Hämta först IP-adressen för ingressen:

kubectl get ingress

Kontrollera att exempelprogrammet som du skapade körs av något av följande:

  • Besök IP-adressen för den programgatewayinstans som du fick från att köra föregående kommando.
  • curl.

Det kan ta en minut att hämta uppdateringen för Application Gateway. Om programgatewayen fortfarande är i uppdateringstillstånd på portalen låter du den slutföras innan du försöker nå IP-adressen.

Rensa resurser

När du inte längre behöver dem tar du bort alla resurser som skapats i den här självstudien genom att ta bort myResourceGroup och MC_myResourceGroup_myCluster_eastus resursgrupper:

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

Nästa steg

I den här kursen får du:

  • Skapade ett nytt AKS-kluster med AGIC-tillägget aktiverat
  • Distribuerade ett exempelprogram med hjälp av AGIC för ingress i AKS-klustret

Mer information om AGIC finns i Vad är Application Gateway Ingress Controller och Inaktivera och återaktivera AGIC-tillägg för ditt AKS-kluster.

Om du vill lära dig hur du aktiverar application gateway-ingresskontrollanttillägg för ett befintligt AKS-kluster med en befintlig programgateway går du vidare till nästa självstudie.