Início Rápido: Criar Gateway de Aplicativo para contêineres gerenciados pelo Controlador ALB
Artigo
Este guia pressupõe que você está seguindo a estratégia de implantação do controlador gerenciado por ALB, em que todos os recursos de Gateway de Aplicativo para Contêineres são gerenciados pelo controlador ALB. O ciclo de vida é determinado pelos recursos definidos no Kubernetes. O Controlador ALB cria o recurso Gateway de Aplicativo para Contêineres quando um recurso personalizado ApplicationLoadBalancer é definido no cluster. O Gateway de Aplicativo para o ciclo de vida de Contêineres baseia-se no ciclo de vida do recurso personalizado.
Preparar sua rede virtual/sub-rede para Gateway de Aplicativo para contêineres
Se você não tiver uma sub-rede disponível com pelo menos 250 endereços IP disponíveis e delegada ao recurso Gateway de Aplicativo para Contêineres, use as etapas a seguir para criar uma sub-rede e habilitar a delegação de sub-rede. O novo espaço de endereço de sub-rede não pode sobrepor nenhuma sub-rede existente na VNet.
Se você quiser implantar o Gateway de Aplicativo para Contêineres na rede virtual que contém o cluster do AKS, execute o comando a seguir para localizar e atribuir a rede virtual do cluster. Essas informações são usadas na próxima etapa, .
CLI do Azure
AKS_NAME='<your cluster name>'
RESOURCE_GROUP='<your resource group name>'
MC_RESOURCE_GROUP=$(az aks show --name$AKS_NAME--resource-group$RESOURCE_GROUP--query"nodeResourceGroup"-o tsv)
CLUSTER_SUBNET_ID=$(az vmss list --resource-group$MC_RESOURCE_GROUP--query'[0].virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].ipConfigurations[0].subnet.id'-o tsv)
read -d'' VNET_NAME VNET_RESOURCE_GROUP VNET_ID <<< $(az network vnet show --ids $CLUSTER_SUBNET_ID --query '[name, resourceGroup, id]' -o tsv)
Se você quiser criar uma sub-rede em uma rede virtual existente, execute o comando a seguir para definir as variáveis para referência à vnet e ao prefixo de sub-rede a serem usadas durante a criação.
Aviso
Após a criação da sub-rede na próxima etapa, estabeleça a conectividade entre essa rede virtual/sub-rede e o pool de nós do AKS para habilitar a comunicação entre Gateway de Aplicativo para Contêineres e os pods em execução no AKS.
CLI do Azure
VNET_RESOURCE_GROUP=<resource group name of the virtual network>
VNET_NAME=<name of the virtual network to use>
Execute o seguinte comando para criar uma sub-rede contendo pelo menos 250 endereços IP disponíveis e habilitar a delegação de sub-rede para o recurso de associação Gateway de Aplicativo para Contêineres:
CLI do Azure
SUBNET_ADDRESS_PREFIX='<network address and prefix for an address space under the vnet that has at least 250 available addresses (/24 or larger subnet)>'
ALB_SUBNET_NAME='subnet-alb'# subnet name can be any non-reserved subnet name (i.e. GatewaySubnet, AzureFirewallSubnet, AzureBastionSubnet would all be invalid)az network vnet subnet create \
--resource-group$VNET_RESOURCE_GROUP \
--vnet-name$VNET_NAME \
--name$ALB_SUBNET_NAME \
--address-prefixes$SUBNET_ADDRESS_PREFIX \
--delegations'Microsoft.ServiceNetworking/trafficControllers'
ALB_SUBNET_ID=$(az network vnet subnet show --name$ALB_SUBNET_NAME--resource-group$VNET_RESOURCE_GROUP--vnet-name$VNET_NAME--query'[id]'--output tsv)
Delegar permissões para identidade gerenciada
O Controlador ALB precisa da capacidade de provisionar novos Gateway de Aplicativo para recursos de Contêineres e ingressar na sub-rede destinada ao recurso de associação Gateway de Aplicativo para Contêineres.
Nesse exemplo, delegamos a função de Gateway de Aplicativo para o Configuration Manager de Contêineres ao grupo de recursos que contém o cluster gerenciado e delegamos a função de Colaborador de Rede à sub-rede usada pela sub-rede de associação do Gateway de Aplicativo para Contêineres, que contém a permissão Microsoft.Network/virtualNetworks/subnets/join/action.
IDENTITY_RESOURCE_NAME='azure-alb-identity'
MC_RESOURCE_GROUP=$(az aks show --name$AKS_NAME--resource-group$RESOURCE_GROUP--query"nodeResourceGroup"-otsv | tr -d'\r')
mcResourceGroupId=$(az group show --name$MC_RESOURCE_GROUP--query id -otsv)
principalId=$(az identity show -g$RESOURCE_GROUP-n$IDENTITY_RESOURCE_NAME--query principalId -otsv)
# Delegate AppGw for Containers Configuration Manager role to AKS Managed Cluster RGaz role assignment create --assignee-object-id$principalId--assignee-principal-type ServicePrincipal --scope$mcResourceGroupId--role"fbc52c3f-28ad-4303-a892-8a056630b8f1"# Delegate Network Contributor permission for join to association subnetaz role assignment create --assignee-object-id$principalId--assignee-principal-type ServicePrincipal --scope$ALB_SUBNET_ID--role"4d97b98b-1d4f-4787-a291-c67834d212e7"
Criar recurso do Kubernetes do ApplicationLoadBalancer
Definir o namespace do Kubernetes para o recurso ApplicationLoadBalancer
Defina o recurso ApplicationLoadBalancer, especificando a ID da sub-rede na qual o recurso de associação Gateway de Aplicativo para Contêineres deve ser implantado. A associação estabelece a conectividade do Gateway de Aplicativo para Contêineres para a sub-rede definida (e redes conectadas, quando aplicável) para poder fazer proxy do tráfego para um back-end definido.
Observação
Quando o Controlador ALB criar o Gateway de Aplicativo para recursos de Contêineres no ARM, ele usará as seguintes convenções de nomenclatura para seus recursos:
alb-<8 caracteres gerados aleatoriamente> para definir o recurso Gateway de Aplicativo para Contêineres
as-<8 caracteres gerados aleatoriamente> para definir o recurso de associação
Validar a criação do Gateway de Aplicativo para recursos de Contêineres
Depois que o recurso ApplicationLoadBalancer tiver sido criado, você poderá acompanhar o progresso da implantação do Gateway de Aplicativo para recursos de Contêineres. A implantação faz a transição do InProgress para o estado Programado quando o provisionamento é concluído. Pode levar de 5 a 6 minutos para que o Gateway de Aplicativo para que os recursos de contêineres sejam criados.
Você pode verificar o status do recurso ApplicationLoadBalancer executando o seguinte comando:
Bash
kubectl get applicationloadbalancer alb-test -n alb-test-infra -o yaml -w
Exemplo de saída de um provisionamento bem-sucedido do Gateway de Aplicativo para o recurso contêineres do Kubernetes.
Parabéns, você instalou o Controlador ALB no cluster e implantou os recursos do Gateway de Aplicativo para Contêineres no Azure!
Experimente alguns dos guias de instruções para implantar um aplicativo de exemplo, demonstrando alguns dos conceitos de balanceamento de carga do contêiner do Gateway de Aplicativo para Contêineres.
Boas-vindas a esta experiência interativa de validação de habilidades. A conclusão deste módulo ajudará a preparar você para a avaliação Implantar e gerenciar contêineres com o Serviço de Kubernetes do Azure.
Neste início rápido, você aprenderá a provisionar e gerenciar os recursos do Gateway de Aplicativo para contêineres do Azure independentes da configuração do Kubernetes.
Este artigo fornece informações sobre como o Gateway de Aplicativos para contêineres aceita solicitações de entrada e as roteia para um destino de back-end.
Saiba mais sobre o Gateway de Aplicativo do Azure para Contêineres, um balanceador de carga de aplicativo que permite gerenciar o tráfego para suas cargas de trabalho de contêiner.