Compartilhar via


Tutorial: habilitar o complemento controlador de entrada do gateway de aplicativo para um cluster do AKS existente usando um gateway de aplicativo existente

É possível usar o portal ou a CLI do Azure a fim de habilitar o complemento AGIC (controlador de entrada do gateway de aplicativo) para um cluster do AKS (Serviço de Kubernetes do Azure) existente. Neste tutorial, você aprenderá a usar o complemento AGIC para expor seu aplicativo Kubernetes em um cluster do AKS existente por meio de um gateway de aplicativo existente implantado em redes virtuais separadas. Você começará criando um cluster do AKS em uma rede virtual e um gateway de aplicativo em uma rede virtual separada para simular os recursos existentes. Será necessário habilitar o complemento AGIC, emparelhar as duas redes virtuais e implantar um aplicativo de exemplo que será exposto por meio do gateway de aplicativo usando o complemento AGIC. Se você estiver habilitando o complemento AGIC para um gateway de aplicativo existente e um cluster do AKS existente na mesma rede virtual, então poderá ignorar a etapa de emparelhamento abaixo. O complemento fornece uma forma muito mais rápida de implantar o AGIC no cluster do AKS do que por meio do Helm e também oferece uma experiência totalmente gerenciada.

Neste tutorial, você aprenderá a:

  • Crie um grupos de recursos.
  • Crie um novo cluster do AKS.
  • Crie um novo gateway de aplicativo.
  • Habilite o complemento AGIC em um cluster do AKS existente por meio da CLI do Azure.
  • Habilite o complemento AGIC em um cluster do AKS existente por meio do portal do Azure.
  • Emparelhe a rede virtual do Gateway de Aplicativo com a rede virtual do cluster do AKS.
  • Implante 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 novo cluster do AKS

Agora você implantará um novo cluster do AKS, para simular ter um cluster do AKS existente para o qual deseja habilitar o complemento AGIC.

No exemplo a seguir, você implantará um novo cluster do AKS denominado myCluster usando a CNI do Azure e as Identidades Gerenciadas no grupo de recursos que você criou, myResourceGroup.

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

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

Observação

Um grupo de recursos de nó será criado com o nome MC_resource-group-name_cluster-name_location.

Implantar um novo gateway de aplicativo

Agora você implantará um novo gateway de aplicativo, para simular ter um gateway de aplicativo existente que deseja usar para balancear carga de tráfego do cluster do AKS myCluster. O nome do gateway de aplicativo será myApplicationGateway, mas você precisará primeiro criar um recurso de IP público denominado myPublicIp e uma rede virtual denominada myVnet com o espaço de endereço 10.0.0.0/16 (e uma sub-rede com espaço de endereço 10.0.0.0/24 denominada mySubnet), depois implantar o gateway de aplicativo na mySubnet usando o myPublicIp.

Cuidado

Ao usar um cluster do AKS e um gateway de aplicativo em redes virtuais separadas, os espaços de endereço das duas redes virtuais não devem se sobrepor. O espaço de endereço padrão em que um cluster do AKS é implantado é 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

Observação

O complemento AGIC (Controlador de Entrada do Gateway de Aplicativo) é compatível com SKUs do Gateway de Aplicativo v2 (Standard e WAF) e não com SKUs do Gateway de Aplicativo v1.

Habilitar o complemento AGIC em um cluster do AKS existente por meio da CLI do Azure

Caso queira continuar usando a CLI do Azure, será possível prosseguir habilitando o complemento AGIC no cluster do AKS criado anteriormente: myCluster. Além disso, será necessário especificar o complemento AGIC para usar o gateway de aplicativo existente criado anteriormente: 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

Habilitar o complemento AGIC em um cluster do AKS existente por meio do portal do Azure

  1. Na página inicial do portal do Azure, navegue até seu recurso de cluster do AKS.
  2. No menu de serviço, em Configurações, selecione Rede>Integração de rede virtual.
  3. No Controlador de entrada do Gateway de Aplicativo, selecione Gerenciar.
  4. Na página Controlador de entrada do Application Gateway, marque a caixa de seleção para habilitar o controlador de entrada e, em seguida, selecione seu gateway de aplicativo existente na lista suspensa.
  5. Selecione Salvar.

Importante

Se você usa um gateway de aplicativo em um grupo de recursos diferente do grupo de recursos de cluster do AKS, a identidade gerenciada ingressapplicationgateway-{NOMEDOAKS} criada precisa ter as funções de Colaborador de Rede e Leitor definidas no grupo de recursos do gateway de aplicativo.

Emparelhar as duas redes virtuais

Como você implantou o cluster do AKS na própria rede virtual dele e o gateway de aplicativo em outra rede virtual, você precisará emparelhar as duas redes virtuais para que o tráfego flua do gateway de aplicativo para os pods do cluster. O emparelhamento das duas redes virtuais requer a execução do comando da CLI do Azure duas vezes, separadamente, para garantir que a conexão seja bidirecional. O primeiro comando criará uma conexão de emparelhamento da rede virtual do gateway de aplicativo para a rede virtual do AKS. O segundo comando criará uma conexão de emparelhamento na direção oposta.

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

Observação

Na etapa "Implantar um cluster do AKS" acima, o AKS foi criado com a CNI do Azure. Se você tiver um cluster existente do AKS que usa o modo Kubenet, precisará atualizar a tabela de rotas para ajudar os pacotes destinados a um IP do pod a chegarem ao nó que está hospedando esse pod. Uma maneira simples de fazer isso é associando a mesma tabela de rotas criada pelo AKS à sub-rede do Gateway de Aplicativo.

Implantar um aplicativo de exemplo usando o AGIC

Agora, você implantará um aplicativo de exemplo no cluster do AKS que você criou, que usará o complemento AGIC para entrada e conectará o gateway de aplicativo ao cluster do AKS. Primeiro, você receberá credenciais para o cluster do AKS implantado executando o comando az aks get-credentials.

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

Após ter as credenciais para o cluster que você criou, execute o comando a seguir para configurar um aplicativo de exemplo que use o AGIC para entrada no cluster. O AGIC atualizará o gateway de aplicativo que você configurou anteriormente com as regras de roteamento correspondentes para o novo aplicativo de exemplo implantado.

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 o gateway de aplicativo está configurado para fornecer tráfego ao cluster do AKS, vamos verificar se o aplicativo está acessível. Primeiro, você obterá o endereço IP da entrada.

kubectl get ingress

Verifique se o aplicativo de exemplo que você criou está ativo e em execução visitando o endereço IP do gateway de aplicativo que você obteve ao executar o comando acima ou verifique com curl. Pode levar um minuto até que o gateway de aplicativo obtenha a atualização, portanto, se o gateway de aplicativo ainda estiver no estado "Atualizando" no portal do Azure, deixe que ele termine 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