Entrée NGINX managée avec le module complémentaire de routage d’applications
L’un des moyens d’acheminer le trafic HTTP (Hypertext Transfer Protocol) et sécurisé (HTTPS) vers des applications s’exécutant sur un cluster Azure Kubernetes Service (AKS) consiste à utiliser l’objet d’entrée Kubernetes. Lorsque vous créez un objet Ingress qui utilise les classes d’entrées NGINX du module complémentaire de routage d’applications, ce dernier crée, configure et gère un ou plusieurs contrôleurs Ingress dans votre cluster AKS.
Cet article montre comment déployer et configurer un contrôleur d’entrée de base dans votre cluster AKS.
Module complémentaire de routage d’applications avec les fonctionnalités de NGINX
Le module complémentaire de routage d’applications avec NGINX offre les avantages suivants :
- Configuration facile des contrôleurs NGINX Ingress managés basés sur le contrôleur d’entrée NGINX Kubernetes.
- Intégration à Azure DNS pour la gestion des zones publiques et privées
- Arrêt SSL avec des certificats stockés dans Azure Key Vault
Pour les autres configurations, consultez :
- Configuration DNS et SSL
- Configuration du module complémentaire de routage des applications
- Configurer un contrôleur d’entrée NGIX interne pour la zone DNS privée Azure.
Avec la mise hors service de Open Service Mesh (OSM) par la Cloud Native Computing Foundation (CNCF), l’utilisation du module complémentaire de routage des applications avec OSM n’est pas recommandée.
Prérequis
- Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.
- Azure CLI version 2.54.0 ou ultérieure installée et configurée. Exécutez
az --version
pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
Limites
- Le module complémentaire de routage d’applications prend en charge jusqu’à cinq zones Azure DNS.
- Le module complémentaire de routage d’applications ne peut être activé que sur des clusters AKS avec identité managée.
- Toutes les zones Azure DNS globales intégrées au module complémentaire doivent se trouver dans le même groupe de ressources.
- Toutes les zones Azure DNS privées intégrées au module complémentaire doivent se trouver dans le même groupe de ressources.
- La modification du
ConfigMap
d’entrée-nginx dans l’espace de nomsapp-routing-system
n’est pas prise en charge. - Les annotations d’extrait de code suivantes sont bloquées et empêchent une entrée d’être configurée :
load_module
,lua_package
,_by_lua
,location
,root
,proxy_pass
,serviceaccount
,{
,}
,'
.
Activer le routage d'applications à l’aide d’Azure CLI
Activer sur un nouveau cluster
Pour activer le routage d’applications sur un nouveau cluster, utilisez la commande az aks create
, en spécifiant l’indicateur --enable-app-routing
.
az aks create \
--resource-group <ResourceGroupName> \
--name <ClusterName> \
--location <Location> \
--enable-app-routing \
--generate-ssh-keys
Activer sur un cluster existant
Pour activer le routage des applications sur un cluster existant, utilisez la commande az aks approuting enable
.
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
Se connecter à votre cluster AKS
Pour vous connecter au cluster Kubernetes à partir de votre ordinateur local, utilisez kubectl, le client de ligne de commande Kubernetes. Vous pouvez l’installer localement avec la commande az aks install-cli
. Si vous utilisez Azure Cloud Shell, kubectl
est déjà installé.
Configurez kubectl
afin de vous connecter à votre cluster Kubernetes avec la commande az aks get-credentials.
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Déployer une application
Le module complémentaire de routage d’applications utilise des annotations sur des objets d’entrée Kubernetes pour créer les ressources appropriées.
Créez un espace de noms de l’application appelé
aks-store
pour exécuter les exemples de pods à l’aide de la commandekubectl create namespace
.kubectl create namespace aks-store
Déployez l’application de magasin AKS à l’aide du fichier manifeste YAML suivant :
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
Ce manifeste crée les déploiements et services nécessaires pour l’application de magasin AKS.
Créer l’objet Entrée (Ingress)
Le module complémentaire de routage d’applications crée une classe d’entrée sur le cluster appelée webapprouting.kubernetes.azure.com. Quand vous créez un objet d’entrée avec cette classe, cela active le module complémentaire.
Copiez le manifeste YAML suivant dans un nouveau fichier nommé ingress.yaml et enregistrez le fichier sur votre ordinateur local.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: Prefix
Créez la ressource d’entrée avec la commande
kubectl apply
.kubectl apply -f ingress.yaml -n aks-store
L’exemple de sortie suivant présente la ressource créée :
ingress.networking.k8s.io/store-front created
Vérifier que l’entrée managée a été créée
Vous pouvez vérifier que l’entrée managée a été créée avec la commande kubectl get ingress
.
kubectl get ingress -n aks-store
L’exemple de sortie suivant présente l’entrée managée créée :
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
Vous pouvez vérifier que le magasin AKS pointe vers l’adresse IP publique du contrôleur d’entrée. Recherchez l’adresse IP avec kubectl :
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Supprimer le module complémentaire de routage d’applications
Pour supprimer l’espace de noms associé, utilisez la commande kubectl delete namespace
.
kubectl delete namespace aks-store
Pour supprimer le module complémentaire de routage d’applications de votre cluster, utilisez la commande az aks approuting disable
.
az aks approuting disable --name <ClusterName> --resource-group <ResourceGroupName>
Remarque
Pour éviter toute interruption potentielle du trafic vers le cluster lorsque le module complémentaire de routage d’applications est désactivé, certaines ressources Kubernetes, notamment configMaps, secrets et le déploiement qui exécute le contrôleur, restent sur le cluster. Ces ressources se trouvent dans l’espace de noms app-routing-system. Vous pouvez supprimer ces ressources si elles ne sont plus nécessaires en supprimant l’espace de noms avec kubectl delete ns app-routing-system
.
Étapes suivantes
Configurer des configurations d’entrée personnalisées montre comment créer une configuration d’entrée avancée et comment configurer un domaine personnalisé à l’aide d’Azure DNS pour gérer des zones DNS et configurer une entrée sécurisée.
Pour intégrer un équilibreur de charge interne Azure et configurer une zone DNS Azure privée afin de permettre la résolution DNS des points de terminaison privés pour résoudre des domaines spécifiques, consultez Configurer un contrôleur d’entrée NGINX interne pour la zone DNS privée Azure.
Découvrez le monitoring des métriques de contrôleur d’entrée NGINX incluses dans le module complémentaire de routage d’applications avec Prometheus dans Grafana (préversion) dans le cadre de l’analyse des performances et de l’utilisation de votre application.
Azure Kubernetes Service