Partilhar via


Tutorial: Ativar o complemento do controlador de ingresso do gateway de aplicação para um cluster AKS já existente com um gateway de aplicação já existente

Pode usar o Azure CLI ou o portal Azure para ativar o add-on Ingress Controller do Gateway de Aplicações (AGIC) para um cluster Azure Kubernetes Services (AKS) existente. Neste tutorial, você aprenderá a usar o complemento AGIC para expor seu aplicativo Kubernetes em um cluster AKS existente por meio de um gateway de aplicativo existente implantado em redes virtuais separadas. Você começará criando um cluster AKS em uma rede virtual e um gateway de aplicativo em uma rede virtual separada para simular recursos existentes. Em seguida, você habilitará o complemento AGIC, emparelhará as duas redes virtuais juntas e implantará um aplicativo de exemplo que será exposto por meio do gateway de aplicativo usando o complemento AGIC. Se estiveres a habilitar o add-on AGIC para um gateway de aplicação existente e um cluster AKS existente na mesma rede virtual, podes ignorar a etapa de emparelhamento abaixo. O complemento fornece uma maneira muito mais rápida de implantar o AGIC para seu cluster AKS do que através do Helm e também oferece uma experiência totalmente gerenciada.

Sugestão

Para a sua solução de entrada Kubernetes, considere usar o Application Gateway para Containers.

Neste tutorial, irá aprender a:

  • Crie um grupo de recursos.
  • Crie um novo cluster AKS.
  • Crie um novo gateway de aplicativo.
  • Habilite o complemento AGIC no cluster AKS existente por meio da CLI do Azure.
  • Habilite o complemento AGIC no cluster AKS existente por meio do portal do Azure.
  • Emparelhe a rede virtual do gateway de aplicações com a rede virtual do grupo AKS.
  • 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 conta do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

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 novo cluster AKS

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

No exemplo a seguir, você implantará um novo cluster AKS chamado myCluster usando CNI do Azure e Identidades Gerenciadas no grupo de recursos criado, 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, consulte az aks create.

Nota

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

Advertência

Este documento pressupõe que o Azure CNI está instalado no cluster AKS. Se você estiver planejando usar a Sobreposição CNI, deverá garantir que o Application Gateway e o cluster AKS façam parte da mesma rede virtual.

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 a carga do tráfego para seu cluster AKS, myCluster. O nome do gateway de aplicativo será myApplicationGateway, mas você precisará primeiro criar um recurso IP público, chamado myPublicIp, e uma nova rede virtual chamada myVnet com 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 chamada mySubnet, e implantar seu gateway de aplicativo em mySubnet usando myPublicIp.

Atenção

Quando você usa um cluster 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 AKS implanta é 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

Nota

O complemento AGIC (Application Gateway Ingress Controller) suporta apenas as SKUs v2 do gateway de aplicações (Standard e WAF) e não as SKUs v1.

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

Se quiser continuar a utilizar a CLI do Azure, pode continuar a ativar o suplemento AGIC no cluster AKS que criou, myCluster, e especificar o suplemento AGIC para utilizar o gateway de aplicação existente que criou, 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

Habilite o complemento AGIC no cluster AKS existente por meio do portal do Azure

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

Importante

Se você usar um gateway de aplicativo em um grupo de recursos diferente do grupo de recursos de cluster AKS, a identidade gerenciada ingressapplicationgateway-{AKSNAME} criada deverá 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 AKS em sua própria rede virtual 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 no cluster. Interligar as duas redes virtuais requer que o comando CLI do Azure seja executado duas vezes, para garantir que a conexão seja bidirecional. O primeiro comando criará uma conexão de emparelhamento da rede virtual do gateway de aplicações para a rede virtual do AKS; o segundo comando criará uma conexão de emparelhamento na outra direção.

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

Nota

Na etapa "Implantar um novo cluster AKS" acima, criámos o AKS com o Azure CNI; caso tenha um cluster AKS existente a usar modo Kubenet, é necessário atualizar a tabela de rotas para ajudar os pacotes destinados a um IP POD a alcançar o nó que está a hospedar o pod. Uma maneira simples de conseguir isso é associando a mesma tabela de rotas criada pelo AKS à sub-rede do Application Gateway.

Implantar um aplicativo de exemplo usando AGIC

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

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

Depois de ter as credenciais para o cluster criado, execute o seguinte comando para configurar um aplicativo de exemplo que usa AGIC para Ingress no cluster. A AGIC atualizará o gateway de aplicativo que você configurou anteriormente com as regras de roteamento correspondentes para o novo aplicativo de exemplo que você implantou.

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

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 para o gateway de aplicativo obter a atualização, portanto, se o gateway de aplicativo ainda estiver em um estado de "Atualização" no portal do Azure, deixe-o concluir antes de tentar acessar o endereço IP.

Limpar recursos

Quando não for mais necessário, 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