Lorsque le trafic connaît des pics inattendus ou suit un planning connu, l'ajustement manuel des ressources des pods s'avère lent et sujet aux erreurs. ACK Serverless propose quatre solutions d'Auto Scaling qui adaptent dynamiquement le nombre de réplicas de pods ou les allocations de ressources à la charge de travail. Vos applications restent ainsi réactives sans surapprovisionnement. Ce service convient aux charges de travail en ligne, aux tâches de calcul et d'entraînement à grande échelle, aux tâches d'apprentissage profond accélérées par GPU, ainsi qu'aux tâches d'inférence et d'entraînement de modèles utilisant des GPU partagés.
Avant de choisir une solution, comprenez les deux dimensions de la mise à l'échelle :
Horizontale vs verticale : La mise à l'échelle horizontale ajuste le nombre de réplicas de pods. La mise à l'échelle verticale ajuste le CPU et la mémoire alloués à chaque pod sans modifier le nombre de réplicas.
Réactive vs prédictive : La mise à l'échelle réactive répond aux métriques actuelles. La mise à l'échelle prédictive utilise les données historiques pour anticiper la demande.
Le tableau suivant résume ces quatre solutions.
| Solution | Fonctionnement | Métriques de mise à l'échelle | Cas d'utilisation | Ressources prises en charge | Documentation |
|---|---|---|---|---|---|
| HPA (Horizontal Pod Autoscaler) | Solution Kubernetes standard pour la mise à l'échelle horizontale. Augmente le nombre de réplicas de pods lors des pics de demande et le réduit lorsque la demande baisse. | Utilisation du CPU et de la mémoire ; métriques personnalisées | Services connaissant des pics de trafic imprévisibles — commerce électronique, éducation en ligne et services financiers | Deployments et StatefulSets (toute ressource implémentant l'interface scale) |
Mise à l'échelle horizontale des pods |
| CronHPA (Cron Horizontal Pod Autoscaler) | Met à l'échelle les pods selon un planning de type crontab. Prend en charge les fuseaux horaires, les dates d'exécution spécifiques et les dates d'exclusion telles que les jours fériés. Fonctionne conjointement avec HPA. | Basé sur un planning | Applications présentant des périodes de pointe prévisibles ou devant exécuter des tâches à des moments précis | Deployments et StatefulSets | Utiliser CronHPA pour la mise à l'échelle horizontale planifiée |
| VPA (Vertical Pod Autoscaler) | Surveille la consommation des ressources des pods et ajuste automatiquement les requêtes et limites de CPU et de mémoire pour optimiser leur dimensionnement, sans modifier le nombre de réplicas. | VPA recommande et ajuste automatiquement les requêtes et limites pour les ressources CPU et mémoire dans les conteneurs du pod | Applications stateful ou monolithiques nécessitant une fourniture stable de ressources ; également utile lors de la récupération de pods après des anomalies | Deployments, DaemonSets et StatefulSets | Mise à l'échelle verticale des pods |
| AHPA (Advanced Horizontal Pod Autoscaler) | Étend HPA avec la mise à l'échelle prédictive. Analyse les modèles historiques des métriques pour prévoir la demande et met à l'échelle les pods avant l'arrivée du trafic. | Utilisation du CPU, de la mémoire et du GPU ; requêtes par seconde (QPS) ; temps de réponse (RT) ; métriques personnalisées | Applications présentant des schémas de trafic périodiques — diffusion en direct, éducation en ligne et jeux vidéo | Deployments et Knative Services | Présentation d'AHPA |