Tutoriel : Activer le module complémentaire Ingress Controller pour un cluster nouveau AKS avec une nouvelle instance Application Gateway

Vous pouvez utiliser Azure CLI pour activer le module complémentaire AGIC (Application Gateway Ingress Controller) pour un nouveau cluster Azure Kubernetes Services (AKS).

Dans ce tutoriel, vous allez créer un cluster AKS avec le module complémentaire AGIC activé. La création du cluster crée automatiquement une instance Azure Application Gateway à utiliser. Vous déploierez ensuite un exemple d’application qui utilisera le module complémentaire pour exposer l’application par le biais de Application Gateway.

Le module complémentaire offre un moyen beaucoup plus rapide de déployer AGIC pour votre cluster AKS que précédemment via Helm. Il offre également une expérience complètement managé.

Dans ce tutoriel, vous allez apprendre à :

  • Créez un groupe de ressources.
  • Créez un cluster AKS avec le module complémentaire AGIC activé.
  • Déployez un exemple d’application à l’aide d’AGIC pour l’entrée sur le cluster AKS.
  • Vérifiez que l’application est accessible par le biais de la passerelle Application Gateway.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Prérequis

Créer un groupe de ressources

Dans Azure, vous allouez les ressources associées à un groupe de ressources. Créez un groupe de ressources à l’aide de la commande az group create. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement USA Est (région) :

az group create --name myResourceGroup --location eastus

Déployez un cluster AKS avec le module complémentaire activé

Déployez ensuite un nouveau cluster AKS avec le module complémentaire AGIC activé. Si vous ne fournissez pas d’instance Application Gateway existante à utiliser dans ce processus, vous allez créer et configurer automatiquement une nouvelle instance Application Gateway pour servir le trafic vers le cluster AKS.

Notes

Le module complémentaire Application Gateway Ingress Controller (AGIC) prend en charge uniquement les références SKU Application Gateway v2 (Standard et WAF), pas les références SKU Application Gateway v1. Lorsque vous déployez une nouvelle instance Application Gateway par le biais du module complémentaire AGIC, vous pouvez déployer uniquement une référence SKU Application Gateway Standard_v2. Si vous souhaitez activer le module complémentaire pour une référence SKU WAF_v2 Application Gateway, utilisez l’une des méthodes suivantes :

Dans l’exemple suivant, vous allez déployer un nouveau cluster AKS nommé myCluster à l’aide de Azure CNI et des identités managées. Le module complémentaire AGIC sera activé dans le groupe de ressources que vous avez créé, myResourceGroup.

Le déploiement d’un nouveau cluster AKS avec le module complémentaire AGIC activé sans spécifier une instance Application Gateway existante créera automatiquement une instance de passerelle applicative SKU Standard_v2. Vous devez spécifier un nom et un espace d’adressage de sous-réseau pour la nouvelle instance de passerelle applicative. L’espace d’adressage doit être à partir du préfixe 10.224.0.0/12 utilisé par le réseau virtuel AKS, sans chevaucher le préfixe 10.224.0.0/16 utilisé par le sous-réseau AKS. Dans ce tutoriel, utilisez myApplicationGateway pour le nom de passerelle applicative et 10.225.0.0/16 pour son espace d’adressage de sous-réseau.

az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity -a ingress-appgw --appgw-name myApplicationGateway --appgw-subnet-cidr "10.225.0.0/16" --generate-ssh-keys

[REMARQUE!] Veuillez vous assurer que l'identité utilisée par AGIC dispose de l'autorisation Microsoft.Network/virtualNetworks/subnets/join/action déléguée au sous-réseau dans lequel Application Gateway est déployée. Si un rôle personnalisé n’est défini avec cette autorisation, vous pouvez utiliser le rôle Contributeur réseau intégré qui contient l’autorisation Microsoft.Network/virtualNetworks/subnets/join/action.

# Get application gateway id from AKS addon profile
appGatewayId=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.config.effectiveApplicationGatewayId")

# Get Application Gateway subnet id
appGatewaySubnetId=$(az network application-gateway show --ids $appGatewayId -o tsv --query "gatewayIpConfigurations[0].subnet.id")

# Get AGIC addon identity
agicAddonIdentity=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.identity.clientId")

# Assign network contributor role to AGIC addon identity to subnet that contains the Application Gateway
az role assignment create --assignee $agicAddonIdentity --scope $appGatewaySubnetId --role "Network Contributor"

Pour configurer d’autres paramètres pour la commande ci-dessus, vous devez utiliser az aks create.

Notes

Le cluster AKS que vous avez créé apparaît dans le groupe de ressources que vous avez créé, myResourceGroup. Toutefois, l’instance Application Gateway créée automatiquement se trouve dans le groupe de ressources de nœud, là où se trouvent les pools d’agents. Le groupe de ressources de nœud est nommé MC_resource-Group-name_cluster-name_location par défaut, mais il peut être modifié.

Déployer un exemple d’application en utilisant le complément AGIC

Vous allez maintenant déployer un exemple d’application sur le cluster AKS que vous avez créé. L’application utilisera le module complémentaire AGIC pour l’entrée et connectera l’instance Application Gateway au cluster AKS.

Tout d’abord, exécutez la commande az aks get-credentials pour obtenir les informations de connexion au cluster AKS :

az aks get-credentials -n myCluster -g myResourceGroup

Une fois que vous avez ces informations de connexion, exécutez la commande suivante afin de configurer un exemple d’application qui utilise AGIC pour l’entrée au cluster. AGIC mettra à jour Application Gateway que vous avez configurée précédemment avec les règles d’acheminement correspondantes vers l’exemple d’application que vous avez déployé.

kubectl apply -f https://raw.githubusercontent.com/Azure/application-gateway-kubernetes-ingress/master/docs/examples/aspnetapp.yaml 

Vérifier que l’application est accessible

Maintenant que la passerelle Application Gateway est configurée pour envoyer le trafic vers le cluster AKS, vous devez vérifier que votre application est accessible. Recherchez d’abord l’adresse IP de l’entrée :

kubectl get ingress

Vérifiez que l’exemple d’application que vous avez créée est en cours d’exécution par l’une des deux opérations suivantes :

  • En visitant l’adresse IP de l’instance Application Gateway que vous avez obtenue à partir de l’exécution de la commande précédente.
  • Utilisation de curl.

L’opération de mise à jour par Application Gateway peut prendre quelques minutes. Si Application Gateway est toujours en état de Mise à jour sur le portail, attendez que cela soit terminé avant d’essayer d’accéder à l’adresse IP.

Nettoyer les ressources

Lorsque vous n’en avez plus besoin, supprimez toutes les ressources créées dans ce tutoriel en supprimant les groupes de ressources myResourceGroup et MC_myResourceGroup_myCluster_eastus :

az group delete --name myResourceGroup
az group delete --name MC_myResourceGroup_myCluster_eastus

Étapes suivantes

Dans ce tutoriel, vous allez :

  • Créé un cluster AKS avec le module complémentaire AGIC activé
  • Déployé un exemple d’application à l’aide d’AGIC pour l’entrée sur le cluster AKS

Pour en savoir plus sur AGIC, consultez Qu’est-ce qu’un contrôleur d’entrée Application Gateway et Désactiver et réactiver le module complémentaire AGIC pour votre cluster AKS.

Pour découvrir comment activer le module complémentaire Application Gateway Ingress Controller pour un cluster AKS existant avec une passerelle applicative existante, passez au tutoriel suivant.