À propos de l'autoscaling des charges de travail en fonction des métriques


Cette page décrit les différentes façons d'augmenter ou de diminuer automatiquement le nombre d'instances répliquées d'une charge de travail donnée à l'aide de métriques personnalisées, externes ou Prometheus.

Pourquoi effectuer un autoscaling en fonction des métriques

Prenons l'exemple d'une application destinée à extraire les tâches d'une file d'attente et à les exécuter. L'application peut avoir un objectif de niveau de service (SLO) défini sur le temps de traitement d'une tâche ou d'un certain nombre de tâches en attente. Si la file d'attente augmente, le SLO des charges de travail peut permettre d'exécuter un nombre plus important d'instances dupliquées. Si la file d'attente est vide ou diminue plus rapidement que prévu, vous pouvez réaliser des économies en réduisant le nombre d'instances dupliquées, tout en restant dans le cadre du SLO défini pour les charges de travail.

À propos des métriques personnalisées, Prometheus et externes

Vous pouvez adapter les charges de travail en fonction de métriques personnalisées, Prometheus ou externes.

Une métrique personnalisée est signalée par votre application qui s'exécute dans Kubernetes. Pour en savoir plus, consultez la section Métriques personnalisées et Prometheus.

Les métriques provenant de Managed Service pour Prometheus sont considérées comme un type de métrique personnalisée.

Une métrique externe est signalée par une application ou un service ne s'exécutant pas sur votre cluster, mais dont les performances ont une incidence sur votre application Kubernetes. Par exemple, vous pouvez effectuer l'autoscaling sur n'importe quelle métrique dans Cloud Monitoring, y compris Pub/Sub ou Dataflow. Les métriques Prometheus contiennent des données omises de votre cluster que vous pouvez utiliser pour effectuer un autoscaling. Pour en savoir plus, consultez la page Métriques externes.

Métriques personnalisées et Prometheus

Nous vous recommandons d'utiliser Managed Service pour Prometheus afin de créer et de gérer des métriques personnalisées. Vous pouvez utiliser le langage de requête Prometheus (PromQL) pour interroger toutes les métriques dans Monitoring. Pour en savoir plus, consultez la page Autoscaling horizontal des pods pour Managed Service pour Prometheus.

Votre application peut signaler une métrique personnalisée à Monitoring. Vous pouvez configurer Kubernetes de façon à répondre à ces métriques et effectuer l'autoscaling de votre charge de travail. Par exemple, vous pouvez adapter l'application en fonction de métriques telles que les requêtes par seconde, les opérations d'écriture par seconde, les performances du réseau, la latence lors de la communication avec une autre application ou d'autres métriques pertinentes pour la charge de travail. Pour en savoir plus, consultez la page Optimiser l'autoscaling des pods en fonction des métriques.

Métriques externes

Si vous devez adapter votre charge de travail en fonction des performances d'une application ou d'un service en dehors de Kubernetes, vous pouvez configurer une métrique externe. Par exemple, vous devrez peut-être augmenter la capacité de l'application afin d'ingérer les messages Pub/Sub si le nombre de messages non distribués a tendance à augmenter. L'application externe doit exporter la métrique vers une instance Monitoring accessible au cluster. L'autoscaler horizontal des pods modifie automatiquement le nombre d'instances dupliquées de la charge de travail en fonction de l'évolution de chaque métrique au fil du temps. Pour en savoir plus, consultez la page Optimiser l'autoscaling des pods en fonction des métriques.

Importer des métriques dans Monitoring

Pour importer des métriques dans Monitoring, vous pouvez :

Étapes suivantes