Advanced Horizontal Pod Autoscaler (AHPA) est une fonctionnalité de mise à l'échelle prédictive proposée par Container Service for Kubernetes (ACK). Elle analyse les données historiques des métriques pour anticiper la demande de charge de travail et provisionne les pods avant les pics de trafic, éliminant ainsi le délai de réaction inhérent à la mise à l'échelle Kubernetes standard.
Contexte
Les approches standard de mise à l'échelle Kubernetes présentent chacune des compromis :
| Méthode | Limitation |
|---|---|
| Nombre fixe de pods | Les pods inactifs gaspillent des ressources pendant les heures creuses |
| Horizontal Pod Autoscaler (HPA) | La mise à l'échelle ne se déclenche qu'après le franchissement d'un seuil d'utilisation des ressources ; les pods ne sont donc prêts qu'une fois la demande déjà augmentée |
| CronHPA | Nécessite de définir manuellement le nombre de pods pour chaque créneau horaire (1 440 planifications distinctes pour couvrir une journée entière avec une granularité à la minute) et impose une mise à jour à chaque changement des modèles de trafic |
AHPA répond à ces limitations en apprenant à partir des données historiques. Au lieu de réagir a posteriori, AHPA identifie les fluctuations de la charge de travail sur la base des valeurs historiques de métriques spécifiques et du temps nécessaire pour qu'un pod passe à l'état Ready. Cela permet à AHPA de pré-provisionner le nombre approprié de pods par minute pour les 24 heures suivantes, garantissant ainsi que la capacité soit disponible dès l'arrivée du trafic.
Fonctionnement
Métriques prises en charge
AHPA met à l'échelle les charges de travail en fonction du CPU, du GPU, de la mémoire, du nombre de requêtes par seconde (QPS), du temps de réponse (RT) et des métriques externes.
Mécanismes de prédiction
AHPA utilise deux mécanismes de prédiction complémentaires :
Prédiction proactive — Analyse les données historiques des métriques pour détecter les modèles périodiques et prévoir la demande future. Adaptée aux charges de travail présentant des cycles de trafic réguliers et récurrents.
Prédiction passive — Surveille les métriques en temps réel et ajuste la capacité dynamiquement selon l'évolution des conditions.
Ces mécanismes combinés permettent d'atteindre une précision supérieure à 95 % dans l'identification des fluctuations de la charge de travail.
Gestion des dégradations de service
En cas de comportement inattendu des charges de travail, AHPA vous permet de définir des nombres minimum et maximum de pods pour des périodes spécifiques, avec une précision à la minute, servant respectivement de plancher et de plafond de sécurité.
Cibles de mise à l'échelle
AHPA s'intègre à trois mécanismes de mise à l'échelle :
| Cible de mise à l'échelle | Utilisation par AHPA |
|---|---|
| Knative | Résout la latence de démarrage à froid dans les scénarios serverless en mettant à l'échelle selon la concurrence, le QPS ou le RT |
| HPA | Enveloppe le HPA standard avec une logique prédictive, simplifiant la configuration des politiques et supprimant le délai de réaction |
| Deployment | Met à l'échelle les Deployments directement, sans nécessiter HPA comme intermédiaire |
Principales fonctionnalités
| Fonctionnalité | Détail |
|---|---|
| Vitesse de prédiction | Prévoit les fluctuations de la charge de travail en quelques millisecondes |
| Vitesse de mise à l'échelle | Provisionne les pods en quelques secondes |
| Précision | Identifie les fluctuations de la charge de travail avec une précision supérieure à 95 % |
| Granularité temporelle | Prend en charge des limites de nombre de pods précises à la minute |
Cas d'utilisation
Charges de travail périodiques — Applications aux cycles de trafic prévisibles, telles que le streaming en direct, l'éducation en ligne et les plateformes de jeu.
Gestion du trafic burst — Deployments combinant un nombre de pods de base fixe avec une mise à l'échelle automatique pour absorber les pics de trafic inattendus dans des scénarios commerciaux courants.
Intégration à la planification de la capacité — Systèmes nécessitant des recommandations de provisionnement de pods. AHPA expose une API Kubernetes standard permettant de récupérer les résultats de prédiction et de les intégrer à vos propres systèmes.