Démarrage rapide : Créer Application Gateway pour conteneurs - apportez votre propre déploiement

Ce guide suppose que vous suivez la stratégie de déploiementbring your own, où le contrôleur ALB référence les ressources pour Application Gateway pour les conteneurs précréées dans Azure. Il est supposé que les cycles de vie des ressources sont gérés dans Azure, indépendamment de ce qui est défini dans Kubernetes.

Prérequis

Vérifiez que vous avez d’abord déployé le contrôleur ALB dans votre cluster Kubernetes. Vous pouvez suivre le guide Démarrage rapide : déployer le contrôleur ALB pour Application Gateway pour les conteneurs si vous n’avez pas déjà déployé le contrôleur ALB.

Créer la ressource pour Application Gateway pour les conteneurs

Exécutez la commande suivante pour créer la ressource pour Application Gateway pour les conteneurs.

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

Créer une ressource frontale

Exécutez la commande suivante pour créer la ressource frontale pour Application Gateway pour les conteneurs.

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

Créer une ressource d’association

Déléguer un sous-réseau à une ressource d’association

Pour créer une ressource d’association, vous devez d’abord référencer un sous-réseau pour que Application Gateway pour les conteneurs établisse la connectivité. Vérifiez que le sous-réseau d’une association pour Application Gateway pour les conteneurs est au moins une classe C ou supérieure (préfixe CIDR /24 ou plus petit). Pour cette étape, vous pouvez réutiliser un sous-réseau existant et activer la délégation de sous-réseau sur celui-ci ou créer un réseau virtuel, un sous-réseau et activer la délégation de sous-réseau.

Pour référencer un sous-réseau existant, exécutez la commande suivante pour définir les variables pour référencer le sous-réseau dans les étapes ultérieures.

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)

Activez la délégation de sous-réseau pour le service Application Gateway pour les conteneurs. La délégation pour Application Gateway pour les conteneurs est identifiée par le type de ressource 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

Déléguer des autorisations à une identité managée

Le contrôleur ALB a besoin de la possibilité de provisionner de nouvelles ressources Application Gateway pour conteneurs et de joindre le sous-réseau destiné à la ressource d’association Application Gateway pour conteneurs.

Dans cet exemple, nous déléguons le rôle AppGW pour conteneurs Configuration Manager au groupe de ressources et déléguons le rôle contributeur réseau au sous-réseau utilisé par le sous-réseau d’association Application Gateway pour conteneurs, qui contient l’autorisation Microsoft.Network/virtualNetworks/subnets/join/action.

Si vous le souhaitez, vous pouvez créer et attribuer un rôle personnalisé avec l’autorisation Microsoft.Network/virtualNetworks/subnets/join/action pour éliminer les autres autorisations contenues dans le rôle de Contributeur de réseau. En savoir plus sur la gestion des autorisations de sous-réseau.

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" 

Créer une ressource d’association

Exécutez la commande suivante pour créer la ressource d’association et la connecter au sous-réseau référencé. La création de l’association pour Application Gateway pour les conteneurs peut prendre 5 à 6 minutes.

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

Étapes suivantes

Félicitations, vous avez installé le contrôleur ALB sur votre cluster et déployé les ressources Application Gateway pour les conteneurs dans Azure !

Essayez quelques-uns des guides pratiques pour déployer un exemple d’application, en illustrant certains des concepts d’équilibrage de charge avec Application Gateway pour les conteneurs.