Início Rápido: Criar Gateway de Aplicativos para contêineres - traga sua própria implantação

Este guia pressupõe que você esteja seguindo a estratégia traga sua própriaimplantação, em que o Controlador do ALB faz referência ao Gateway de Aplicativo para recursos de contêineres pré-criados no Azure. Supõe-se que os ciclos de vida de recursos sejam gerenciados no Azure, independentemente do que é definido no Kubernetes.

Pré-requisitos

Verifique se você implantou primeiro o Controlador ALB no cluster do Kubernetes. Você pode seguir o guia Início Rápido: implantar Gateway de Aplicativo para contêineres de Controlador ALB se você ainda não implantou o controlador ALB.

Criar o recurso Gateway de Aplicativo para Contêineres

Execute o comando a seguir para criar o recurso Gateway de Aplicativo para Contêineres.

RESOURCE_GROUP='<your resource group name>'
AGFC_NAME='alb-test' # Name of the Application Gateway for Containers resource to be created
az network alb create -g $RESOURCE_GROUP -n $AGFC_NAME

Criar um recurso de front-end

Execute o comando a seguir para criar o recurso de front-end do Gateway de Aplicativo para Contêineres.

FRONTEND_NAME='test-frontend'
az network alb frontend create -g $RESOURCE_GROUP -n $FRONTEND_NAME --alb-name $AGFC_NAME

Criar um recurso de associação

Delegar uma sub-rede ao recurso de associação

Para criar um recurso de associação, primeiro você precisa referenciar uma sub-rede para Gateway de Aplicativo para Contêineres estabelecerem conectividade. Verifique se a sub-rede de uma associação do Gateway de Aplicativo para Contêineres é pelo menos uma classe C ou maior (/24 ou um prefixo CIDR menor). Para essa etapa, você pode reutilizar uma sub-rede existente e habilitar a delegação de sub-rede nela ou criar uma nova VNET, uma sub-rede e habilitar a delegação de sub-rede.

Para fazer referência a uma sub-rede existente, execute o comando a seguir para definir as variáveis de referência à sub-rede em etapas posteriores.

VNET_NAME='<name of the virtual network to use>'
VNET_RESOURCE_GROUP='<the resource group of your VNET>'
ALB_SUBNET_NAME='subnet-alb' # subnet name can be any non-reserved subnet name (i.e. GatewaySubnet, AzureFirewallSubnet, AzureBastionSubnet would all be invalid)

Habilite a delegação de sub-rede para o serviço do Gateway de Aplicativo para Contêineres. A delegação para Gateway de Aplicativo para Contêineres é identificada pelo tipo de recurso Microsoft.ServiceNetworking/trafficControllers.

az network vnet subnet update \
    --resource-group $VNET_RESOURCE_GROUP  \
    --name $ALB_SUBNET_NAME \
    --vnet-name $VNET_NAME \
    --delegations 'Microsoft.ServiceNetworking/trafficControllers'
ALB_SUBNET_ID=$(az network vnet subnet list --resource-group $VNET_RESOURCE_GROUP --vnet-name $VNET_NAME --query "[?name=='$ALB_SUBNET_NAME'].id" --output tsv)
echo $ALB_SUBNET_ID

Delegar permissões para identidade gerenciada

O Controlador ALB precisa ter a capacidade de provisionar novos recursos do Gateway de Aplicativos para contêineres e ingressar na sub-rede destinada ao recurso de associação do Gateway de Aplicativos para contêineres.

Neste exemplo, delegamos a função AppGW para Configuration Manager de Contêineres ao grupo de recursos e delegamos a função Colaborador de Rede à sub-rede usada pela sub-rede de associação do Gateway de Aplicativos para contêineres, que contém a permissão Microsoft.Network/virtualNetworks/subnets/join/action.

Se desejar, você pode criar e atribuir uma função personalizada com a permissão Microsoft.Network/virtualNetworks/subnets/join/action para eliminar outras permissões contidas na função Colaborador de Rede . Saiba mais sobre como Gerenciar permissões de sub-rede.

IDENTITY_RESOURCE_NAME='azure-alb-identity'

resourceGroupId=$(az group show --name $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 RG containing Application Gateway for Containers resource
az role assignment create --assignee-object-id $principalId --assignee-principal-type ServicePrincipal --scope $resourceGroupId --role "fbc52c3f-28ad-4303-a892-8a056630b8f1" 

# Delegate Network Contributor permission for join to association subnet
az role assignment create --assignee-object-id $principalId --assignee-principal-type ServicePrincipal --scope $ALB_SUBNET_ID --role "4d97b98b-1d4f-4787-a291-c67834d212e7" 

Criar um recurso de associação

Execute o comando a seguir para criar o recurso de associação e conectá-lo à sub-rede referenciada. Pode levar de 5 a 6 minutos para que a associação do Gateway de Aplicativo para Contêineres seja criada.

ASSOCIATION_NAME='association-test'
az network alb association create -g $RESOURCE_GROUP -n $ASSOCIATION_NAME --alb-name $AGFC_NAME --subnet $ALB_SUBNET_ID

Próximas etapas

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.