Guia de início rápido: criar gateway de aplicativo para contêineres - traga sua própria implantação
Este guia pressupõe que você esteja seguindo a estratégia de implantação de traga sua própria estratégia, na qual o Controlador ALB faz referência aos recursos do Gateway de Aplicativo para Contêineres pré-criados no Azure. Supõe-se que os ciclos de vida dos recursos sejam gerenciados no Azure, independentemente do que é definido no Kubernetes.
Pré-requisitos
Certifique-se de ter implantado primeiro o Controlador ALB em seu cluster Kubernetes. Você pode seguir o guia Guia de início rápido: implantar o Application Gateway for Containers ALB Controller se ainda não tiver implantado o controlador ALB.
Criar o recurso Application Gateway for Containers
Execute o seguinte comando para criar o recurso Application Gateway for Containers.
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 seguinte comando para criar o recurso front-end do Application Gateway for Containers.
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 fazer referência a uma sub-rede para o Application Gateway for Containers para estabelecer conectividade. Verifique se a sub-rede de uma associação do Application Gateway for Containers é pelo menos uma classe C ou maior (/24 ou prefixo CIDR menor). Para esta etapa, você pode reutilizar uma sub-rede existente e habilitar a delegação de sub-rede nela ou criar uma nova VNET, sub-rede e habilitar a delegação de sub-rede.
Para fazer referência a uma sub-rede existente, execute o seguinte comando para definir as variáveis para 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 Application Gateway for Containers. A delegação para o Application Gateway for Containers é 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 à identidade gerenciada
O Controlador ALB precisa da capacidade de provisionar novos recursos do Application Gateway for Containers e ingressar na sub-rede destinada ao recurso de associação Application Gateway for Containers.
Neste exemplo, delegamos a função AppGW for Containers Configuration Manager ao grupo de recursos e delegamos a função de Colaborador de Rede à sub-rede usada pela sub-rede de associação Application Gateway for Containers, 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 de 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 seguinte comando 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 Application Gateway for Containers 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óximos passos
Parabéns, você instalou o ALB Controller em seu cluster e implantou os recursos do Application Gateway for Containers no Azure!
Experimente alguns dos guias de instruções para implantar um aplicativo de exemplo, demonstrando alguns dos conceitos de balanceamento de carga do Application Gateway for Container.