Inicio rápido: Creación de Application Gateway para Containers: traiga su propia implementación

En esta guía se da por supuesto que sigue la estrategia traiga su propiaimplementación, donde el controlador ALB hace referencia a los recursos Application Gateway for Containers creados previamente en Azure. Se supone que los ciclos de vida de los recursos se administran en Azure, independientemente de lo que se define en Kubernetes.

Requisitos previos

Asegúrese de que ha implementado primero el controlador ALB en el clúster de Kubernetes. Consulte la guía Inicio rápido: Implementación del controlador ALB de Application Gateway para Containers si aún no ha implementado el controlador ALB.

Creación del recurso Application Gateway para Containers

Ejecute el siguiente comando para crear el recurso Application Gateway para 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

Creación de un recurso front-end

Ejecute el siguiente comando para crear el recurso front-end de Application Gateway para Containers.

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

Creación de un recurso de asociación

Delegación de una subred en un recurso de asociación

Para crear un recurso de asociación, primero debe hacer referencia a una subred para Application Gateway para Containers con el fin de establecer la conectividad. Asegúrese de que la subred de una asociación de Application Gateway para Containers es al menos una clase C o mayor (/24 o un prefijo CIDR más pequeño). En este paso puede reutilizar una subred existente y habilitar la delegación de subred en ella. También puede crear una nueva VNET, una subred y habilitar la delegación de subred.

Para hacer referencia a una subred existente, ejecute el siguiente comando para establecer las variables de referencia en la subred en pasos 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 la delegación de subred para el servicio Application Gateway para Containers. La delegación de Application Gateway para Containers se identifica mediante el 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

Delegación de permisos a una identidad administrada

El controlador ALB necesita la capacidad de aprovisionar nuevos recursos de Application Gateway para contenedores y unir la subred destinada al recurso de asociación de Application Gateway para contenedores.

En este ejemplo, se delega el rol AppGW for Containers Configuration Manager al grupo de recursos y se delega el rol Colaborador de red a la subred usada por el recurso de asociación de Application Gateway para Containers, que contiene el permiso Microsoft.Network/virtualNetworks/subnets/join/action.

Si lo desea, puede crear y asignar un rol personalizado con el permiso Microsoft.Network/virtualNetworks/subnets/join/action para eliminar otros permisos contenidos en el rol Colaborador de red. Obtenga más información sobre la administración de permisos de subred.

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" 

Creación de un recurso de asociación

Ejecute el siguiente comando para crear el recurso de asociación y conectarlo a la subred a la que se hace referencia. La asociación de Application Gateway para Containers puede tardar entre 5 y 6 minutos en crearse.

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

Pasos siguientes

Enhorabuena, ha instalado el controlador ALB en el clúster y ha implementado los recursos de Application Gateway para Containers en Azure.

Pruebe algunas de las guías paso a paso para implementar una aplicación de ejemplo, en las que se muestran algunos conceptos de equilibrio de carga de Application Gateway para Containers.