Tutoriel : Activer le module complémentaire Application Gateway Ingress Controller pour un cluster AKS existant avec une passerelle applicative existante

Vous pouvez utiliser Azure CLI ou le portail pour activer le module complémentaire Application Gateway Ingress Controller (AGIC) pour un cluster Azure Kubernetes Services (AKS) existant. Ce tutoriel vous explique comment utiliser le module complémentaire AGIC pour exposer votre application Kubernetes dans un cluster AKS existant par le biais d’une passerelle Application Gateway existante qui a été déployée dans des réseaux virtuels distincts. Vous commencerez par créer un cluster AKS dans un réseau virtuel et une passerelle Application Gateway dans un autre réseau virtuel pour simuler des ressources existantes. Vous allez ensuite activer le module complémentaire AGIC, appairer les deux réseaux virtuels et déployer un exemple d’application qui sera exposé par le biais de la passerelle applicative à l’aide du module complémentaire AGIC. Si vous activez le complément AGIC pour une passerelle Application Gateway existante et un cluster AKS existant dans le même réseau virtuel, vous pouvez ignorer l’étape d’appairage ci-dessous. Le complément permet de déployer AGIC dans votre cluster AKS beaucoup plus rapidement qu’avec la méthode Helm. De plus, il offre une expérience entièrement managée.

Dans ce tutoriel, vous allez apprendre à :

  • Créer un groupe de ressources
  • Créer un cluster AKS
  • Créer une passerelle applicative
  • Activer le module complémentaire AGIC dans le cluster AKS existant via Azure CLI
  • Activer le module complémentaire AGIC dans le cluster AKS existant via le portail Azure
  • Appairer le réseau virtuel de la passerelle applicative et le réseau virtuel du cluster AKS
  • Déployer un exemple d’application à l’aide du complément 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éployer un nouveau cluster AKS

Vous allez maintenant déployer un nouveau cluster AKS pour simuler la présence d’un cluster AKS existant dans lequel vous voulez activer le complément AGIC.

Dans l’exemple suivant, vous déployez un nouveau cluster AKS nommé myCluster en utilisant Azure CNI et des identités managées dans le groupe de ressources que vous avez créé, myResourceGroup.

az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity --generate-ssh-keys

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

Notes

Un groupe de ressources de nœud est créé avec le nom MC_resource-group-name_cluster-name_location.

Déployer une nouvelle passerelle applicative

Vous allez maintenant déployer une nouvelle passerelle applicative afin de simuler la présence d’une passerelle applicative existante que vous comptez ensuite utiliser pour équilibrer la charge du trafic vers votre cluster AKS, myCluster. La passerelle applicative s’appellera myApplicationGateway, mais vous devez d’abord créer une ressource IP publique, nommée myPublicIp ainsi qu’un autre réseau virtuel appelé myVnet avec l’espace d’adressage 10.0.0.0/16 et un sous-réseau avec l’espace d’adressage 10.0.0.0/24 appelé mySubnet. Vous devez aussi déployer votre passerelle applicative dans mySubnet avec myPublicIp.

Attention

Quand vous utilisez un cluster AKS et une passerelle Application Gateway dans des réseaux virtuels distincts, les espaces d’adressage de ces deux réseaux ne doivent pas se chevaucher. L’espace d’adressage par défaut dans lequel un cluster AKS est déployé est 10.224.0.0/12.

az network public-ip create -n myPublicIp -g myResourceGroup --allocation-method Static --sku Standard
az network vnet create -n myVnet -g myResourceGroup --address-prefix 10.0.0.0/16 --subnet-name mySubnet --subnet-prefix 10.0.0.0/24 
az network application-gateway create -n myApplicationGateway -g myResourceGroup --sku Standard_v2 --public-ip-address myPublicIp --vnet-name myVnet --subnet mySubnet --priority 100

Notes

Le module Contrôleur d’entrée Application Gateway (AGIC) prend en charge uniquement les références SKU Application Gateway v2 (Standard et WAF), et pas les références SKU Application Gateway v1.

Activer le module complémentaire AGIC dans un cluster AKS existant via Azure CLI

Si vous souhaitez continuer à utiliser Azure CLI, vous pouvez continuer à activer le module complémentaire AGIC dans le cluster AKS que vous avez créé, myCluster, et spécifier le module complémentaire AGIC pour qu’il utilise la passerelle applicative existante que vous avez créée, myApplicationGateway.

appgwId=$(az network application-gateway show -n myApplicationGateway -g myResourceGroup -o tsv --query "id") 
az aks enable-addons -n myCluster -g myResourceGroup -a ingress-appgw --appgw-id $appgwId

Important

Lorsque vous utilisez une passerelle applicative dans un groupe de ressources différent du groupe de ressources du cluster AKS, l’identité managée ingressapplicationgateway-{AKSNAME} créée doit avoir les rôles Contributeur de réseaux et Lecteur définis dans le groupe de ressources de passerelle applicative.

Appairer les deux réseaux virtuels

Étant donné que vous avez déployé le cluster AKS dans son propre réseau virtuel et la passerelle applicative dans un autre réseau virtuel, vous devez appairer les deux réseaux virtuels afin de rendre possible le trafic entre la passerelle applicative et les pods dans le cluster. L’appairage des deux réseaux virtuels s’effectue en exécutant la commande Azure CLI deux fois pour garantir une connexion bidirectionnelle. La première commande crée une connexion d’appairage du réseau virtuel de la passerelle applicative vers le réseau virtuel AKS. La seconde commande crée une connexion d’appairage dans l’autre direction.

nodeResourceGroup=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "nodeResourceGroup")
aksVnetName=$(az network vnet list -g $nodeResourceGroup -o tsv --query "[0].name")

aksVnetId=$(az network vnet show -n $aksVnetName -g $nodeResourceGroup -o tsv --query "id")
az network vnet peering create -n AppGWtoAKSVnetPeering -g myResourceGroup --vnet-name myVnet --remote-vnet $aksVnetId --allow-vnet-access

appGWVnetId=$(az network vnet show -n myVnet -g myResourceGroup -o tsv --query "id")
az network vnet peering create -n AKStoAppGWVnetPeering -g $nodeResourceGroup --vnet-name $aksVnetName --remote-vnet $appGWVnetId --allow-vnet-access

Notes

Dans l’étape « Déployer un nouveau cluster AKS » ci-dessus, nous avons créé un cluster AKS avec Azure CNI. Dans le cas où vous disposez d’un cluster AKS existant utilisant le mode Kubenet, vous devez mettre à jour la table de routage pour faire en sorte que les paquets destinés à l’adresse IP d’un POD atteignent le nœud qui héberge le pod. Un moyen simple d’y parvenir consiste à associer la même table de routage créée par AKS au sous-réseau d’Application Gateway.

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

Vous allez maintenant déployer un exemple d’application dans le cluster AKS que vous avez créé, qui utilisera le complément AGIC pour l’entrée et connectera la passerelle applicative au cluster AKS. Tout d’abord, exécutez la commande az aks get-credentials pour obtenir les informations de connexion au cluster AKS que vous avez déployé.

az aks get-credentials -n myCluster -g myResourceGroup

Une fois que vous avez les informations de connexion au cluster que vous avez créé, exécutez la commande suivante afin de configurer un exemple d’application qui utilise AGIC pour l’entrée au cluster. AGIC met à jour la passerelle applicative que vous avez configurée précédemment avec les règles de routage correspondantes vers le nouvel 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 applicative 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éé est opérationnel en accédant à l’adresse IP de la passerelle applicative que vous avez obtenue en exécutant la commande ci-dessus ou en la cherchant avec curl. L’obtention de la mise à jour par la passerelle applicative peut prendre jusqu’à une minute. Si la passerelle applicative est toujours dans l’état « Mise à jour » sur le portail Azure, patientez jusqu’à la fin du processus avant de tenter d’atteindre 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