Mise à l’échelle automatique simplifiée des applications avec le module complémentaire KEDA (Kubernetes Event-driven Autoscaling) dans Azure Kubernetes Service (AKS)

Important

Le module complémentaire KEDA pour AKS ne prend actuellement pas en charge la modification des demandes ou limites de CPU et d'autres valeurs Helm, pour le Metrics Server ou l'Operator. Gardez cette limitation à l’esprit lors de l’utilisation du module complémentaire. Si vous avez des questions, n’hésitez pas à contacter ici.

La mise à l’échelle automatique basée sur les événements Kubernetes (KEDA) est un composant simple et léger qui simplifie la mise à l’échelle automatique des applications. Il s’agit d’un projet d’études supérieures de Cloud Native Computing Foundation (CNCF). KEDA utilise la mise à l’échelle automatique pilotée par les événements pour mettre à l’échelle votre application afin de répondre à la demande de manière durable et rentable avec une mise à l’échelle à zéro.

Pour la plupart des charges de travail de production, AKS Automatic est l’expérience AKS par défaut recommandée. AKS Automatic est prêt pour la production par défaut et inclut KEDA préconfiguré sur le cluster. Si vous utilisez AKS Standard, vous pouvez activer KEDA à l’aide du module complémentaire KEDA managé.

Pour en savoir plus sur AKS Automatic, consultez Qu’est-ce que Azure Kubernetes Service (AKS) Automatique ?

Remarque

La version 2.15+ de KEDA introduit un changement cassant qui supprime la prise en charge de l’identité de pod. Nous vous recommandons de passer à Workload Identity pour l’authentification si vous utilisez Pod Identity. Bien que le module complémentaire managé KEDA n’exécute actuellement pas KEDA version 2.15+, le module complémentaire managé commence à exécuter KEDA 2.15+ dans AKS preview version 1.32.

Pour plus d’informations sur la mise à l’échelle sécurisée de vos applications avec l’identité de charge de travail, lisez notre tutoriel. Pour voir la stratégie de changement/dépréciation de KEDA, lisez leur documentation officielle.

KEDA dans AKS Automatic et AKS Standard

KEDA est disponible dans les deux modes de cluster AKS, mais le chemin d’installation est différent :

  • AKS Automatic : KEDA est préconfiguré et prêt à être utilisé.
  • AKS Standard : activez KEDA en activant le module complémentaire managé AKS.

Pour la plupart des scénarios de production, commencez par AKS Automatic pour utiliser les valeurs par défaut prêtes pour la production et réduire la surcharge de gestion des clusters.

Architecture

KEDA fournit deux composants principaux :

  • L’opérateur KEDA permet aux utilisateurs finaux d'ajuster l'échelle des charges de travail de 0 à N instances avec prise en charge des Déploiements Kubernetes, des Travaux, StatefulSets, et de toute ressource personnalisée qui définit une /scale sous-ressource.
  • Le serveur de métriques expose des métriques externes à HPA (Horizontal Pod Autoscaler) dans Kubernetes à des fins de mise à l’échelle automatique, telles que des messages dans une rubrique Kafka ou un nombre d’événements dans un Event Hub Azure. En raison des limitations en amont, KEDA doit être le seul adaptateur de métriques externe installé.

Diagramme montrant l’architecture de KEDA et la façon dont elle étend Kubernetes.

En savoir plus sur le fonctionnement de KEDA dans la documentation officielle de KEDA.

Installation et activation

AKS Automatic

KEDA est préconfiguré dans AKS Automatic. Aucune étape d’installation de module complémentaire KEDA distincte n’est requise.

AKS Standard

Activez KEDA sur AKS Standard à l’aide de l’une des méthodes suivantes :

Le module complémentaire KEDA managé fournit une installation KEDA entièrement prise en charge intégrée à AKS.

Capacités et fonctionnalités

KEDA fournit les fonctionnalités suivantes :

  • Ramenez les charges de travail à zéro lorsque la demande diminue.
  • Mettez à l’échelle les charges de travail de vos applications pour répondre à la demande à l’aide des scalers KEDA d’Azure.
  • Mettez les applications à l'échelle automatiquement à l'aide de ScaledObjects, tels que Deployments, StatefulSets ou toute ressource personnalisée définissant la sous-ressource /scale.
  • Mise à l’échelle automatique des charges de travail de type tâche à l’aide de ScaledJobs.
  • Utilisez une sécurité de niveau production en dissociant l'authentification de la mise à l'échelle automatique des charges de travail.
  • Apportez votre propre scaler externe pour une logique de mise à l’échelle automatique personnalisée.
  • S’intégrer à ID de charge de travail Microsoft Entra pour l’authentification.

Dans AKS Automatic, vous obtenez ces fonctionnalités de mise à l’échelle automatique pilotées par les événements par défaut, car le cluster est préconfiguré avec KEDA.

Remarque

Si vous envisagez d’utiliser l’identité de charge de travail sur AKS Standard, activez l’identité de charge de travail avant d’activer le module complémentaire KEDA.

Conseils en matière de production

Utilisez ces conseils pour choisir votre mode de cluster :

  • Choisissez AKS Automatic lorsque vous souhaitez une expérience par défaut prête pour la production avec KEDA préconfigurée.
  • Choisissez AKS Standard lorsque vous avez besoin d’une personnalisation au niveau du cluster plus approfondie et d’une gestion explicite des modules complémentaires.
  • Utilisez KEDA dans l'un ou l'autre mode pour les charges de travail à mise à l'échelle automatique pilotée par événements.

Limitations relatives aux modules complémentaires

Le module complémentaire KEDA AKS présente les limitations suivantes :

  • Le module complémentaire HTTP (préversion) de KEDA pour mettre à l’échelle les charges de travail HTTP n’est pas installé avec l’extension, mais peut être déployé séparément.
  • Le scaler externe pour Azure Cosmos DB de KEDA pour mettre à l’échelle en fonction du flux de modification Azure Cosmos DB n’est pas installé avec l’extension, mais peut être déployé séparément.
  • Un seul serveur de métriques externe est autorisé dans le cluster Kubernetes. Pour cela, le module complémentaire KEDA doit être le seul serveur de métriques externe à l’intérieur du cluster.
    • Plusieurs installations KEDA ne sont pas prises en charge
  • Il n’est pas recommandé de combiner KEDA ScaledObject avec un HPA (Horizontal Pod Autoscaler) pour mettre à l’échelle la même charge de travail. Ils sont en concurrence les uns avec les autres, car KEDA utilise l’autoscaler de pod horizontal (HPA) en arrière-plan et entraîne un comportement de mise à l’échelle impair.
    • Si un HPA est créé en premier, un KEDA ScaledObject est créé et le KEDA ScaledObject ne sera pas créé.
    • Si un KEDA ScaledObject est créé en premier, puis qu’un HPA est créé, la création HPA n’est pas bloquée.

Pour des questions générales sur KEDA, nous vous recommandons de consulter la vue d’ensemble de la FAQ.

Remarque

Si vous utilisez l’ID de charge de travail Microsoft Entra et que vous activez KEDA avant l’ID de charge de travail, vous devez redémarrer les pods d’opérateur KEDA afin que les variables d’environnement appropriées puissent être injectées :

  1. Redémarrez les pods en exécutant kubectl rollout restart deployment keda-operator -n kube-system.

  2. Récupérez les pods de l’opérateur KEDA à l’aide de kubectl get pod -n kube-system et repérez les pods dont le nom commence par keda-operator.

  3. Vérifiez que l’injection des variables d’environnement a réussi en exécutant kubectl describe pod <keda-operator-pod> -n kube-system. Sous Environment, vous devez voir les valeurs de AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILE et AZURE_AUTHORITY_HOST.

Versions Kubernetes et KEDA prises en charge

Votre version kubernetes de cluster détermine la version KEDA installée sur votre cluster AKS. Pour voir la version KEDA mappée à chaque version AKS, consultez la colonne Modules complémentaires gérés par AKS du tableau des versions de composant Kubernetes.

Pour les versions Kubernetes GA, AKS offre une prise en charge complète de la version mineure KEDA correspondante dans le tableau. Les préversions de Kubernetes et le dernier patch KEDA sont partiellement couverts par le service client, dans la mesure du possible. Telles quelles, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :