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éez 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 en utilisant 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
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
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 --name myCluster --resource-group 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 --name myPublicIp --resource-group myResourceGroup --allocation-method Static --sku Standard
az network vnet create --name myVnet --resource-group myResourceGroup --address-prefix 10.0.0.0/16 --subnet-name mySubnet --subnet-prefix 10.0.0.0/24
az network application-gateway create --name myApplicationGateway --resource-group 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 --name myApplicationGateway --resource-group myResourceGroup -o tsv --query "id")
az aks enable-addons --name myCluster --resource-group myResourceGroup --addon ingress-appgw --appgw-id $appgwId
Activer le module complémentaire AGIC dans un cluster AKS existant via le portail Azure
- À partir de la page d’accueil du Portail Azure, accédez à votre ressource de cluster AKS.
- Dans le menu du service, sous Paramètres, sélectionnez Mise en réseau>Intégration du réseau virtuel.
- Sous Contrôleur d’entrée de la passerelle applicative, sélectionnez Gérer.
- Dans la page Contrôleur d’entrée de la passerelle applicative, cochez la case pour activer le contrôleur d’entrée, puis sélectionnez votre passerelle applicative existante dans la liste déroulante.
- Cliquez sur Enregistrer.
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 la 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 --name myCluster --resource-group myResourceGroup -o tsv --query "nodeResourceGroup")
aksVnetName=$(az network vnet list --resource-group $nodeResourceGroup -o tsv --query "[0].name")
aksVnetId=$(az network vnet show --name $aksVnetName --resource-group $nodeResourceGroup -o tsv --query "id")
az network vnet peering create --name AppGWtoAKSVnetPeering --resource-group myResourceGroup --vnet-name myVnet --remote-vnet $aksVnetId --allow-vnet-access
appGWVnetId=$(az network vnet show --name myVnet --resource-group myResourceGroup -o tsv --query "id")
az network vnet peering create --name AKStoAppGWVnetPeering --resource-group $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 --name myCluster --resource-group 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