Tutorial: Habilitar o complemento do controlador de ingresso para um novo cluster AKS com uma nova instância de 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 Azure Kubernetes Services (AKS).

Neste tutorial, você criará um cluster 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 fornece uma maneira muito mais rápida de implantar o AGIC para seu cluster AKS do que anteriormente através do Helm. Ele também oferece uma experiência totalmente gerenciada.

Neste tutorial, irá aprender a:

  • Crie um grupo de recursos.
  • Crie um novo cluster AKS com o complemento AGIC ativado.
  • Implante um aplicativo de exemplo usando AGIC para entrada no cluster AKS.
  • Verifique se o aplicativo está acessível por meio do gateway de aplicativo.

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Criar um grupo de recursos

No Azure, você aloca recursos relacionados a um grupo de recursos. Crie um grupo de recursos usando az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup no local (região) Leste dos EUA :

az group create --name myResourceGroup --location eastus

Implantar um cluster AKS com o complemento habilitado

Agora você implantará um novo cluster AKS com o complemento AGIC habilitado. Se você não fornecer uma instância de gateway de aplicativo existente para usar nesse processo, criará e configurará automaticamente uma nova instância de gateway de aplicativo para servir o tráfego para o cluster AKS.

Nota

O complemento do controlador de ingresso do gateway de aplicativo suporta apenas SKUs v2 do gateway de aplicativo (Standard e WAF), e não as SKUs v1 do gateway de aplicativo. Ao implantar uma nova instância de gateway de aplicativo por meio do complemento AGIC, você pode implantar apenas um gateway de aplicativo Standard_v2 SKU. Se você quiser habilitar o complemento para um gateway de aplicativo WAF_v2 SKU, use um destes métodos:

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

A implantação de um novo cluster AKS com o complemento AGIC habilitado sem especificar uma instância de gateway de aplicativo existente criará automaticamente uma instância de gateway de aplicativo 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 AKS sem sobreposição com o prefixo 10.224.0.0/16 usado pela sub-rede AKS. Neste tutorial, use myApplicationGateway para o nome do gateway de aplicativo e 10.225.0.0/16 para seu 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

[NOTA!] Verifique se a identidade usada pela AGIC tem a permissão Microsoft.Network/virtualNetworks/subnets/join/action delegada à sub-rede em que o Application Gateway está implantado. Se uma função personalizada não estiver 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, consulte az aks create.

Nota

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

Implantar um aplicativo de exemplo usando AGIC

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

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

az aks get-credentials -n myCluster -g myResourceGroup

Agora que você tem credenciais, execute o seguinte comando para configurar um aplicativo de exemplo que usa AGIC para entrada no cluster. A 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 

Verifique se o aplicativo está acessível

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

kubectl get ingress

Verifique se o aplicativo de exemplo que você criou está sendo executado:

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

O gateway de aplicativo pode levar um minuto para obter a atualização. Se o gateway de aplicativo ainda estiver em um estado de Atualização no portal, deixe-o terminar antes de tentar acessar o endereço IP.

Clean up resources (Limpar recursos)

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

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

Próximos passos

Neste tutorial:

  • Criado novo cluster AKS com o complemento AGIC ativado
  • Implantado um aplicativo de exemplo usando AGIC para entrada no cluster AKS

Para saber mais sobre o AGIC, consulte O que é o Application Gateway Ingress Controller e Desativar e reativar o complemento AGIC para seu cluster AKS.

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