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

La mise à l’échelle automatique Kubernetes basée sur les événements (KEDA) est un composant unique et léger qui facilite la mise à l’échelle automatique des applications et relève d’un projet de diplôme CNCF.

Elle applique la mise à l’échelle automatique basée sur les événements pour mettre à l’échelle votre application afin qu’elle réponde à la demande de manière durable et rentable avec une mise à l’échelle à zéro.

Le module complémentaire KEDA facilite le déploiement d’une installation KEDA managée, ce qui vous fournit un catalogue complet d’utilitaires de mise à l’échelle KEDA Azure pour mettre à l’échelle vos applications sur votre cluster Azure Kubernetes Services (AKS).

Architecture

KEDA fournit deux composants principaux :

  • L’opérateur KEDA permet aux utilisateurs finaux de mettre à l’échelle des charges de travail entre 0 et N instances avec prise en charge des déploiements Kubernetes, travaux, StatefulSets ou de toute ressource personnalisée définissant la sous-ressource /scale.
  • 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 installé.

Diagram that shows the architecture of K E D A and how it extends Kubernetes instead of re-inventing the wheel.

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

Installation

KEDA peut être ajouté à votre cluster Azure Kubernetes Service (AKS) en activant le module complémentaire KEDA à l’aide d’un modèle ARM ou Azure CLI.

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

Capacités et fonctionnalités

KEDA fournit les fonctionnalités suivantes :

  • Créer des applications durables et rentables avec mise à l’échelle à zéro
  • Mettre à l’échelle les charges de travail d’application pour répondre à la demande en utilisant un catalogue complet d’utilitaires de mise l’échelle KEDA
  • Mettre à l’échelle automatiquement les applications avec ScaledObjects, comme des déploiements, des StatefulSet ou toute ressource personnalisée qui définit la sous-ressource /scale
  • Mettre à l’échelle automatiquement des charges de travail avec ScaledJobs
  • Utiliser la sécurité de niveau production en découplant l’authentification de mise à l’échelle automatique à partir de charges de travail
  • Apporter son propre scaler externe pour utiliser des décisions de mise à l’échelle automatique personnalisées
  • Intégrer l’ID de charge de travail Microsoft Entra pour l’authentification

Remarque

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

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 est autorisé dans le cluster Kubernetes. Pour cela, le module complémentaire KEDA doit être le seul serveur de métriques à l’intérieur du cluster.
    • Plusieurs installations KEDA ne sont pas prises en charge

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. Obtenez des pods d’opérateur KEDA en utilisant kubectl get pod -n kube-system et en recherchant les pods commençant 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

La version Kubernetes de votre 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 :

Étapes suivantes