Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode usar a CLI do Azure ou o portal do Azure para habilitar o complemento controlador de entrada do gateway de aplicativo (AGIC) para um cluster existente do Azure Kubernetes Service (AKS). 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, poderá pular a etapa de emparelhamento abaixo. O complemento fornece uma maneira muito mais rápida de implantar o AGIC para seu cluster do AKS do que por meio do Helm e também oferece uma experiência totalmente gerenciada.
Dica
Para sua solução de entrada do Kubernetes, considere usar o Gateway de Aplicativo para Contêineres.
Neste tutorial, você aprenderá a:
- Crie um grupo 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.
- Emparelhar 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.
Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Utilize o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Introdução ao Azure Cloud Shell.
Se você preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para obter outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute az upgrade.
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 exemplo a seguir 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 chamado myCluster usando a CNI do Azure e 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, consulte az aks create.
Observação
Um grupo de recursos de nó será criado com o nome MC_resource-group-name_cluster-name_location.
Aviso
Este documento pressupõe que o CNI do Azure está instalado no cluster do AKS. Se você estiver planejando usar a Sobreposição de CNI, verifique se o Gateway de Aplicativo e o cluster do AKS fazem parte da mesma rede virtual.
Implantar um novo gateway de aplicativo
Agora você implantará um novo gateway de aplicativo, para simular a existência de um gateway de aplicativo que você deseja usar para balancear a carga do tráfego para seu cluster do AKS, myCluster. O nome do gateway de aplicativo será myApplicationGateway, mas você precisará primeiro criar um recurso de IP público, chamado myPublicIp, e uma nova rede virtual chamada myVnet com espaço de endereço 10.0.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 no mySubnet usando 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 apenas dá suporte a SKUs v2 do gateway de aplicativo (Standard e WAF) e não às SKUs do gateway de aplicativo v1.
Habilitar o complemento AGIC em um cluster do AKS existente por meio da CLI do Azure
Se você quiser continuar usando a CLI do Azure, poderá continuar habilitando o complemento AGIC no cluster do AKS criado, myCluster e especificar o complemento AGIC para usar o gateway de aplicativo existente criado, 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
- Na página inicial do portal do Azure, navegue até o recurso de cluster do AKS.
- No menu de serviço, em Configurações, selecione Rede>Integração da rede virtual.
- Em Controlador de entrada do Gateway de Aplicativo, selecione Gerenciar.
- 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.
- Selecione Salvar.
Importante
Se você usar um gateway de aplicativo em um grupo de recursos diferente do grupo de recursos de cluster do AKS, a ingressapplicationgateway-{AKSNAME} de identidade gerenciada criada deverá ter 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 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
Observação
Na etapa "Implantar um novo cluster do AKS" acima, criamos o AKS com o CNI do Azure, caso você tenha um cluster AKS existente usando o modo Kubenet , será necessário atualizar a tabela de rotas para ajudar os pacotes destinados a um IP pod a alcançar o nó que hospeda o 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 add-on AGIC para Ingress 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 do Ingress.
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 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