Tutorial: Habilitar o complemento controlador de entrada para um novo cluster do AKS com uma nova instância do gateway de aplicativo

Você pode usar a CLI do Azure para habilitar o complemento AGIC (controlador de entrada do gateway de aplicativo) para um novo cluster do AKS (Serviço de Kubernetes do Azure).

Neste tutorial, você criará um cluster do AKS com o complemento AGIC habilitado. A criação do cluster criará automaticamente uma instância do gateway de aplicativo do Azure a ser usada. Em seguida, você implantará um aplicativo de exemplo que usará o complemento para expor o aplicativo por meio do gateway de aplicativo.

O complemento proporciona uma forma muito mais rápida de implantar o AGIC no cluster do AKS do que a forma usada anteriormente, por meio do Helm. Ele também oferece uma experiência totalmente gerenciada.

Neste tutorial, você aprenderá como:

  • Crie um grupo de recursos.
  • Criar um cluster do AKS com o complemento AGIC habilitado.
  • Implantar um aplicativo de exemplo usando o AGIC para entrada no cluster do AKS.
  • Verificar se o aplicativo pode ser acessado por meio do gateway de aplicativo.

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Criar um grupo de recursos

No Azure, você pode alocar recursos relacionados a um grupo de recursos. Crie um grupo de recursos usando az group create. O seguinte exemplo cria um grupo de recursos chamado myResourceGroup na localização Leste dos EUA (região):

az group create --name myResourceGroup --location eastus

Implantar um cluster do AKS com o complemento habilitado

Agora, você vai implantar um novo cluster do AKS com o complemento AGIC habilitado. Se você não fornece uma instância existente do gateway de aplicativo para uso nesse processo, você cria e configura automaticamente uma instância do gateway de aplicativo para levar o tráfego ao cluster do AKS.

Observação

O complemento controlador de entrada do gateway de aplicativo dá suporte somente aos SKUs do gateway de aplicativo v2 (Standard e WAF), e não aos SKUs do gateway de aplicativo v1. Quando estiver implantando uma nova instância do gateway de aplicativo por meio do complemento AGIC, você poderá implantar somente um SKU do gateway de aplicativo Standard_v2. Se quiser habilitar o complemento para um SKU do gateway de aplicativo WAF_v2, use um destes métodos:

No exemplo a seguir, você implantará um novo cluster do AKS chamado myCluster usando a CNI do Azure e as identidades gerenciadas. O complemento AGIC será habilitado no grupo de recursos que você criou, myResourceGroup.

Implantar um novo cluster do AKS com o complemento AGIC habilitado sem especificar uma instância existente do gateway de aplicativo levará à criação automática de uma instância do gateway de aplicativo no SKU Standard_v2. Você precisará especificar um nome e um espaço de endereço de sub-rede para a nova instância do gateway de aplicativo. O espaço de endereço deve ser do prefixo 10.224.0.0/12 usado pela rede virtual do AKS sem se sobrepor ao prefixo 10.224.0.0/16 usado pela sub-rede do AKS. Neste tutorial, use myApplicationGateway para o nome do gateway de aplicativo e 10.225.0.0/16 para o respectivo espaço de endereço de sub-rede.

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

[OBSERVAÇÃO!] Verifique se a identidade usada pelo AGIC tem a permissão Microsoft.Network/virtualNetworks/subnets/join/action delegada ao Gateway de Aplicativo da sub-rede na qual é implantada. Se uma função personalizada não for definida com essa permissão, você poderá usar a função interna de Colaborador de Rede, que contém a permissão 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"

Para configurar mais parâmetros para o comando acima, acesse az aks create.

Observação

O cluster do AKS que você criou aparecerá no grupo de recursos criado, myResourceGroup. No entanto, a instância do gateway de aplicativo criada automaticamente estará no grupo de recursos do nó, onde os pools de agentes se encontram. O grupo de recursos do nó é denominado MC_resource-group-name_cluster-name_location por padrão, mas isso pode ser modificado.

Implantar um aplicativo de exemplo usando o AGIC

Agora, você implantará um aplicativo de exemplo no cluster do AKS que foi criado. O aplicativo usará o complemento AGIC para entrada e conectará a instância do gateway de aplicativo ao cluster do AKS.

Primeiro, obtenha as credenciais para o cluster do AKS executando o comando az aks get-credentials:

az aks get-credentials -n myCluster -g myResourceGroup

Agora que você tem as credenciais, execute o comando a seguir para configurar um aplicativo de exemplo que usa o AGIC para entrada no cluster. O AGIC atualizará a instância do gateway de aplicativo que você configurou anteriormente com as regras de roteamento correspondentes para o aplicativo de exemplo que você está implantando.

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

Verificar se o aplicativo está acessível

Agora que a instância do gateway de aplicativo está configurada para fornecer tráfego ao cluster do AKS, vamos verificar se o aplicativo está acessível. Primeiro, obtenha o endereço IP da entrada:

kubectl get ingress

Verifique se o aplicativo de exemplo criado está sendo executado de uma das seguintes maneiras:

  • Visitando o endereço IP da instância do gateway de aplicativo que você obteve executando o comando anterior.
  • Usando curl.

O gateway de aplicativo pode levar um minuto para obter a atualização. Se o gateway de aplicativo ainda estiver no estado atualizando no portal, aguarde a conclusão da atualização antes de tentar acessar o endereço IP.

Limpar os recursos

Quando você não precisar mais deles, exclua todos os recursos criados neste tutorial excluindo os grupos de recursos myResourceGroup e MC_myResourceGroup_myCluster_eastus:

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

Próximas etapas

Neste tutorial, você:

  • Criou um cluster do AKS com o complemento AGIC habilitado
  • Implantou um aplicativo de exemplo usando o AGIC para entrada no cluster do AKS

Para saber mais sobre o AGIC, confira O que é o Controlador de Entrada do Gateway de Aplicativo e Desabilitar e reabilitar o complemento AGIC para seu cluster AKS.

Para saber como habilitar o complemento controlador de entrada do gateway de aplicativo para um cluster do AKS existente usando um gateway de aplicativo existente, prossiga para o próximo tutorial.