Procéder à l'autoscaling de groupes d'instances

Les groupes d'instances gérés proposent des fonctionnalités d'autoscaling qui vous permettent d'ajouter automatiquement des instances à un groupe géré ou d'en supprimer, en fonction de l'augmentation ou de la réduction de la charge. L'autoscaling permet à vos applications de gérer de façon optimale les hausses de trafic et de réduire vos coûts lorsque les besoins en ressources sont moins importants. Vous définissez des règles d'autoscaling pour que l'autoscaler procède à un scaling automatique en fonction de la charge mesurée.

L'autoscaling consiste à ajouter davantage d'instances au groupe lorsque la charge augmente et à en supprimer si le nombre d'instances nécessaires diminue.

Principes de base

L'autoscaling utilise les concepts et les services fondamentaux suivants.

Groupes d'instances gérés

L'autoscaling est une fonctionnalité des groupes d'instances gérés. Un groupe d'instances géré est un pool d'instances homogènes créées à partir d'un même modèle d'instance. Un autoscaler ajoute ou supprime des instances d'un groupe d'instances géré. Bien que Compute Engine dispose de groupes d'instances gérés et non gérés, seuls les groupes d'instances gérés peuvent être utilisés avec l'autoscaler.

Pour comprendre les différences entre un groupe d'instances géré et un groupe d'instances non géré, consultez la documentation relative aux Groupes d'instances.

Règles d'autoscaling et utilisation cible

Pour créer un autoscaler, vous devez spécifier la règle d'autoscaling et un niveau d'utilisation cible que l'autoscaler utilise pour déterminer à quel moment faire évoluer le groupe. Vous pouvez choisir de faire évoluer votre groupe à l'aide des règles suivantes :

  • Utilisation moyenne du processeur
  • Capacité de diffusion de l'équilibrage de charge HTTP, qui peut être basée sur l'utilisation ou le nombre de requêtes par seconde
  • Métriques Stackdriver Monitoring

L'autoscaler collecte en permanence les informations d'utilisation en fonction de la règle, compare l'utilisation réelle à l'utilisation cible souhaitée et détermine si la taille du groupe doit être augmentée ou réduite.

Le niveau d'utilisation cible est le niveau auquel vous souhaitez maintenir vos instances de machine virtuelle (VM). Par exemple, si vous faites évoluer vos instances en fonction de l'utilisation du processeur, vous pouvez définir votre niveau d'utilisation cible à 75 % pour que l'autoscaler maintienne l'utilisation du processeur du groupe d'instances spécifié à 75 % ou presque. Le niveau d'utilisation de chaque métrique est interprété différemment selon la règle d'autoscaling.

Pour obtenir un bref résumé de chaque règle, consultez la section Règles. Pour en savoir plus sur chaque règle, consultez les pages suivantes :

Intervalle entre chaque période d'autoscaling

Lors de la configuration de l'autoscaling, spécifiez un intervalle pour que vos instances puissent finir de s'initialiser avant que l'autoscaler ne commence à collecter leurs informations. Les informations disponibles pendant la période de démarrage d'une instance peuvent ne pas être fiables pour les décisions des autoscalers, de sorte qu'il est préférable qu'elles ne soient pas prises en compte. Par défaut, l'intervalle séparant les périodes d'autoscaling est de 60 secondes.

Période de stabilisation

Afin de supprimer des instances, l'autoscaler calcule la taille cible recommandée du groupe en fonction de la charge maximale des 10 dernières minutes. On parle pour ces 10 dernières minutes de période de stabilisation.

Cette période de stabilisation de 10 minutes peut être perçue comme un délai d'adaptation, mais il s'agit en fait d'une fonction d'autoscaling intégrée. Le délai permet de vérifier que la nouvelle taille du groupe est suffisante pour gérer la charge maximale des 10 dernières minutes.

Mode autoscaling

Si vous devez procéder à une investigation ou configurer votre groupe sans que les opérations de l'autoscaler n'interfèrent avec le groupe, vous pouvez désactiver ou restreindre les activités d'autoscaling temporairement. La configuration de l'autoscaler est conservée même lorsqu'il est désactivé ou qu'une restriction est appliquée. Ensuite, toutes les activités d'autoscaling reprennent lorsque vous le réactivez ou que vous levez la restriction.

Spécifications

  • L'autoscaling ne fonctionne qu'avec les groupes d'instances gérés. Les groupes d'instances non gérés ne sont pas acceptés.
  • L'autoscaling ne fonctionne pas avec les groupes d'instances gérés si la redistribution proactive des instances est désactivée.
  • Vous ne pouvez pas créer des instances avec des noms spécifiques lorsque l'autoscaling est activé. Toutefois, vous pouvez activer l'autoscaler une fois que vous avez créé des instances en leur attribuant des noms spécifiques.
  • N'utilisez pas la fonctionnalité d'autoscaling Compute Engine avec les groupes d'instances gérés qui appartiennent à Google Kubernetes Engine. Réalisez plutôt un autoscaling du cluster pour les groupes Google Kubernetes Engine.

    Si vous n'êtes pas sûr que votre groupe fait partie d'un cluster GKE, recherchez le préfixe gke dans le nom du groupe d'instances géré. Par exemple, gke-test-1-3-default-pool-eadji9ah.

  • Un autoscaler peut prendre des décisions de scaling en fonction de plusieurs métriques, mais il ne peut gérer qu'une seule règle par type de métrique, sauf dans le cas des métriques Stackdriver Monitoring. Un autoscaler peut en effet gérer jusqu'à cinq règles basées sur les métriques Monitoring. L'autoscaler calcule le nombre de machines virtuelles recommandé pour chaque règle, puis procède au scaling en fonction de la règle qui s'applique au plus grand nombre de machines virtuelles du groupe.

  • L'autoscaling fonctionne indépendamment de l'autoréparation. Si vous avez configuré l'autoréparation pour votre groupe et qu'une instance est identifiée comme défaillante lors de la vérification de son état, le processus d'autoréparation tente de recréer l'instance. Cela peut entraîner une chute du nombre d'instances du groupe en-deçà du seuil d'autoscaling (minNumReplicas) que vous avez spécifié.

Avant de commencer

  1. En savoir plus sur les groupes d'instances gérés

    L'autoscaler étant une fonctionnalité spécifique aux groupes d'instances gérés, nous vous invitons à prendre connaissance du mode de fonctionnement des groupes d'instances gérés avant d'utiliser l'autoscaling.

  2. Obtenir un nom ou une URL pour un groupe d'instances géré

    Vous devez indiquer le nom ou l'URL d'un groupe d'instances géré pour toutes les requêtes d'autoscaling. Vous pouvez utiliser le nom d'un groupe d'instances géré dans l'outil de ligne de commande gcloud, mais vous devez fournir une URL complète si vous souhaitez vous servir de l'API.

    Pour obtenir l'URL d'un groupe d'instances géré existant, vous pouvez utiliser la commande instance-groups managed list --uri ou instance-groups managed list [INSTANCE_GROUP] --uri. Par exemple, la commande suivante fournit l'URL d'un groupe d'instances géré dans la zone us-central1-f :

    gcloud compute instance-groups managed list example-group --uri --filter="zone:(us-central1-f)"
    

    L'outil gcloud renvoie l'URL du groupe d'instances géré :

    https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-group
    

    Si vous ne disposez d'aucun groupe d'instances géré, consultez la marche à suivre pour créer un groupe d'instances géré.

Étapes suivantes

Lorsque vous êtes prêt, créez un autoscaler qui assure un scaling en fonction de la capacité de diffusion de l'équilibrage de charge ou du processeur ou d'une métrique Stackdriver Monitoring.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine