À propos des marges de capacité

Les tampons de capacité vous aident à réduire la latence de démarrage des pods pour vos charges de travail Google Kubernetes Engine (GKE) en vous permettant de gérer de manière proactive la capacité de réserve de votre cluster. En réservant à l'avance une capacité de réserve, vous vous assurez que les nœuds disposent de la capacité disponible en cas de besoin, ce qui réduit le temps nécessaire à la planification de nouveaux pods lors des événements de scaling.

Ce document explique le fonctionnement des tampons de capacité. Pour savoir comment activer et utiliser les tampons de capacité, consultez Configurer des tampons de capacité.

Quand utiliser un tampon de capacité

Utilisez un tampon de capacité pour les applications sensibles à la latence de démarrage et qui doivent évoluer rapidement. Lorsque vous constatez des augmentations soudaines du trafic, un tampon de capacité fournit une capacité préprovisionnée.

Les tampons de capacité offrent les avantages suivants :

  • Réduire la latence de scaling : en utilisant des tampons de capacité, les charges de travail critiques sont immédiatement placées sur des nœuds préprovisionnés. Les tampons de capacité permettent d'éliminer le délai associé au démarrage des VM et à l'extraction des images, ce qui vous aide à maintenir des objectifs de niveau de service (SLO) stricts lors des pics de trafic.
  • Surprovisionnement économique : les tampons de capacité vous aident à maintenir un filet de sécurité de taille fixe. Pour les charges de travail à grande échelle, cette approche est souvent plus économique que d'autres méthodes de surprovisionnement (par exemple, en abaissant les cibles d'utilisation de HorizontalPodAutoscaler (AHP)), ce qui peut augmenter la capacité inactive de manière linéaire à mesure que votre cluster se développe.
  • Répondre aux exigences des charges de travail : vous contrôlez entièrement la taille du tampon de capacité. Vous pouvez, entre autres, intégrer des daemonsets ou des données personnalisés, et contrôler le préchargement des images et le prédémarrage des charges de travail.

Nous recommandons les tampons de capacité pour les charges de travail sensibles à la latence qui nécessitent une augmentation rapide de la capacité, telles que l'inférence d'IA, les applications de vente au détail lors d'événements commerciaux ou les serveurs de jeux lors des pics d'activité des joueurs.

Nous ne recommandons pas les tampons de capacité pour les charges de travail qui ne sont pas sensibles à la latence de démarrage, par exemple les tâches de traitement par lots. Pour ces charges de travail, le surprovisionnement des ressources n'apporte aucun avantage.

Fonctionnement des tampons de capacité

Implémentez un tampon de capacité à l'aide d'une ressource personnalisée Kubernetes CapacityBuffer pour définir un tampon de capacité de réserve. L'autoscaler de cluster GKE surveille les ressources CapacityBuffer et les traite comme une demande en attente pour s'assurer que la capacité de réserve est disponible. Si votre cluster ne dispose pas de suffisamment de capacité pour répondre aux demandes de ressources définies dans le tampon, l'autoscaler de cluster provisionne des nœuds supplémentaires.

Lorsqu'une charge de travail de haute priorité augmente, GKE la planifie immédiatement sur la capacité disponible dans le tampon. Cette planification immédiate s'applique au nombre de répliques ou à la quantité de ressources réservée dans le tampon, ce qui évite le délai habituel associé au provisionnement des nœuds. Lorsqu'une charge de travail utilise une unité de tampon, l'autoscaler de cluster provisionne un nouveau nœud pour remplir le tampon.

Un tampon actif fournit des VM en cours d'exécution pour le scaling à faible latence des charges de travail qui s'inscrivent dans la capacité réservée. Comme les nœuds sont déjà prêts, ils offrent la latence la plus faible possible pour la consommation initiale du tampon lors d'un événement de scaling.

CapacityBuffer CRD

Pour configurer un tampon de capacité, vous devez créer une définition de ressource personnalisée (CRD) CapacityBuffer. Vous pouvez configurer le tampon de capacité pour répondre à différents critères :

  • Répliques fixes : spécifiez un nombre fixe de pods de tampon. Cette configuration est le moyen le plus simple de créer un tampon de taille connue.
  • Basé sur un pourcentage : définissez la taille du tampon en pourcentage d'une charge de travail évolutive existante, telle qu'un déploiement. La taille du tampon s'ajuste de manière dynamique lorsque la charge de travail de référence évolue.
  • Limites de ressources : définissez la quantité totale de processeur et de mémoire que le tampon doit réserver. Le contrôleur calcule le nombre de pods de tampon à créer en fonction des demandes de ressources d'un modèle de pod référencé.

Pour en savoir plus, consultez la documentation de référence CapacityBuffer CRD.

Conditions requises et limites

Les tampons de capacité sont soumis aux exigences et limites suivantes :

  • Les tampons de capacité sont disponibles pour les clusters GKE exécutant la version 1.35.2-gke.1842000 ou ultérieure.
  • Les tampons de capacité ne sont compatibles qu'avec les charges de travail qui utilisent un modèle de facturation basé sur les nœuds. Les tampons de capacité ne sont pas compatibles avec les charges de travail qui utilisent le modèle de facturation basé sur les pods.
  • Nous vous recommandons d'activer le provisionnement automatique des nœuds sur vos clusters. Le provisionnement automatique des nœuds permet à l'autoscaler de cluster de créer des pools de nœuds en fonction des demandes de ressources de votre CapacityBuffer. Si vous n'activez pas le provisionnement automatique des nœuds, l'autoscaler de cluster ne fait évoluer que les pools de nœuds existants.

Étape suivante