La mise à l'échelle native de Kubernetes est réactive par conception : les ressources ne s'ajustent qu'une fois un seuil de métrique franchi, ce qui signifie que les pods démarrent après l'arrivée du pic de trafic. ACS prend en charge la mise à l'échelle prédictive basée sur Advanced Horizontal Pod Autoscaler (AHPA). Cette solution apprend des données historiques pour prédire le nombre de pods nécessaires à une charge de travail — minute par minute — pour les 24 heures suivantes, et les provisionne avant les pics de demande.
Pourquoi les approches de mise à l'échelle existantes sont insuffisantes
|
Méthode |
Limitation |
|
Nombre manuel de pods |
Les pods inactifs gaspillent des ressources pendant les heures creuses |
|
Horizontal Pod Autoscaler (HPA) |
Réagit uniquement après le franchissement d'un seuil de métrique. La montée en puissance n'est déclenchée que lorsque l'utilisation des ressources dépasse le seuil, et la descente en puissance uniquement lorsqu'elle tombe en dessous. La capacité reste donc toujours en retard sur la demande. |
|
CronHPA |
Nécessite une planification distincte pour chaque créneau horaire (jusqu'à 1 440 entrées pour couvrir 24 heures avec une granularité à la minute) et des mises à jour manuelles dès que les modèles de trafic changent. |
AHPA remédie à ces limitations grâce à la mise à l'échelle prédictive : il provisionne les pods avant la demande, éliminant ainsi le décalage entre un pic de trafic et la capacité disponible.
Le schéma ci-dessous compare les deux approches. Avec HPA traditionnel, les pods démarrent après un pic de charge de travail. Avec AHPA, les pods atteignent l'état Ready avant le pic.
Fonctionnement
AHPA combine trois mécanismes pour garantir des ressources suffisantes aux applications : la prédiction proactive, la prédiction passive et la dégradation de service.
Le schéma ci-dessus illustre la manière dont le contrôleur AHPA coordonne ses actions avec HPA et Deployments pour planifier les pods avant la demande.
|
Mécanisme |
Comportement |
|
Prédiction proactive |
Analyse les données historiques des métriques pour prévoir les tendances de la charge de travail et pré-planifie les pods. Cette méthode convient particulièrement aux charges de travail présentant des fluctuations périodiques ou prévisibles. |
|
Prédiction passive |
Détecte et répond aux fluctuations de la charge de travail en temps réel, en déployant des ressources au fur et à mesure que les fluctuations se produisent. |
|
Dégradation de service |
Permet de spécifier les nombres maximum et minimum de pods sur une ou plusieurs périodes, offrant ainsi aux opérateurs un plancher et un plafond garantis, indépendamment des résultats de la prédiction. |
Métriques prises en charge : CPU, GPU, mémoire, requêtes par seconde (QPS), temps de réponse (RT) et métriques externes.
Exécution de la mise à l'échelle : AHPA fonctionne soit via HPA (en simplifiant sa configuration et en compensant le délai de mise à l'échelle inhérent), soit directement via Deployments.
Performances
|
Métrique |
Valeur |
|
Détection des fluctuations de charge de travail |
En quelques millisecondes |
|
Provisionnement des ressources |
En quelques secondes |
|
Précision de la prédiction |
Supérieure à 95 %, en combinant la prédiction proactive et passive |
|
Granularité de la planification |
Nombres de pods spécifiés à la minute près |
Cas d'utilisation
Charges de travail périodiques : Les applications aux cycles de trafic prévisibles (streaming en direct, éducation en ligne et jeux vidéo) tirent le meilleur parti de la prédiction proactive, qui prépare la capacité avant chaque pic.
Ligne de base fixe avec trafic burst : Si votre deployment exécute déjà un nombre fixe de pods pour un trafic stable, AHPA gère les pics inattendus sans vous obliger à gérer plusieurs politiques de mise à l'échelle.
Intégrations de mise à l'échelle automatique personnalisées : Si votre équipe plateforme doit intégrer des recommandations de mise à l'échelle dans des outils internes ou des pipelines CI/CD, AHPA expose une API Kubernetes standard permettant de récupérer les résultats de prédiction et d'agir dessus par programmation.