Lorsque vous créez une règle d'autoscaling avec plusieurs signaux, l'autoscaler procède au scaling en fonction du signal fournissant le plus grand nombre d'instances de machine virtuelle (VM) dans le groupe d'instances géré (MIG). Ainsi, vous aurez toujours suffisamment de VM pour gérer les charges de travail de vos applications et vous pourrez les faire évoluer avec plusieurs goulots d'étranglement possibles.
Pour en savoir plus sur les différents types de signaux d'autoscaling, consultez la page Règle d'autoscaling.
Avant de commencer
- Découvrez les principes de base de l'autoscaler.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
cpuUtilization
avec une cible de 0,8loadBalancingUtilization
avec une cible de 0,6customMetricUtilization
pour la métrique nommée metric1 avec une cible de 1 000customMetricUtilization
pour la métrique nommée metric2 avec une cible de 2 000scalingSchedules
- Un minimum de 6 VM chaque samedi et dimanche à 12h00 pendant 24 heures
- Un minimum de 15 VM des lundis aux vendredis à 9h00 pendant 8 heures
- 0,5 pour l'utilisation du processeur
- 0,4 pour l'utilisation de l'équilibrage de charge
- 1 100 pour la métrique nommée metric1
- 2 700 pour la métrique nommée metric2
- 7 VM basées sur l'utilisation du processeur
- 7 VM basées sur l'utilisation de l'équilibrage de charge
- 11 VM basées sur la métrique nommée metric1
- 14 VM basées sur la métrique nommée metric2
- 6 VM chaque samedi et dimanche pour toute la journée en se basant sur la première planification de scaling
- 15 VM des lundis aux vendredis, de 9h00 à 17h00 en se basant sur la deuxième planification de scaling
Dans la console Google Cloud, accédez à la page Groupes d'instances.
Cliquez sur le nom d'un groupe d'instances géré dans la liste. Cliquez ensuite sur Modifier.
Sur la page de modification, sous Mode autoscaling, activez l'autoscaling en sélectionnant Activé : ajouter et supprimer des instances au groupe dans le menu déroulant.
Sous Nombre minimal d'instances, saisissez le nombre minimal de VM que vous souhaitez pour ce MIG. La taille minimale de ce groupe d'instances géré est toujours conservée, indépendamment de ses signaux d'autoscaling.
Sous Nombre maximal d'instances, saisissez le nombre maximal de VM que vous souhaitez pour ce MIG. La taille maximale de ce groupe d'instances géré n'est jamais dépassée, quelle que soit la taille recommandée par ses signaux d'autoscaling.
Pour chaque signal d'autoscaling basé sur des métriques que vous souhaitez ajouter, cliquez sur Ajouter une métrique sous Métriques d'autoscaling.
- Pour créer un signal d'autoscaling basée sur l'utilisation moyenne du processeur, sélectionnez Utilisation du processeur dans le menu déroulant sous Type de métrique. Saisissez ensuite une valeur d'utilisation du processeur cible et cliquez sur OK. Pour en savoir plus, consultez la page Scaling basé sur l'utilisation du processeur.
- Pour créer un signal d'autoscaling basée la capacité de diffusion de l'équilibrage de charge HTTP, sélectionnez Utilisation de l'équilibrage de charge HTTP dans le menu déroulant sous Type de métrique. Renseignez ensuite le champ Utilisation cible de l'équilibrage de charge HTTP puis cliquez sur OK. Pour en savoir plus, consultez la page Scaling basé sur la capacité de diffusion de l'équilibrage de charge.
- Pour créer un signal d'autoscaling basée sur les métriques Cloud Monitoring, sélectionnez Métrique Cloud Monitoring dans le menu déroulant sous Type de métrique. Renseignez ensuite les champs restants, puis cliquez sur OK. Pour en savoir plus, consultez la page Scaling basé sur les métriques Cloud Monitoring.
Pour chaque signal d'autoscaling basé sur la planification que vous souhaitez ajouter, développez Planifications d'autoscaling cliquez sur Gérer les planifications, puis cliquez sur Créer une planification.
Dans le nouveau volet Créer une planification de scaling, renseignez les champs obligatoires puis cliquez sur Enregistrer. Dans le volet Planifications de scaling, cliquez sur OK. Pour plus d'informations, consultez la section Scaling basé sur les planifications.
Sous Période d'initialisation, saisissez le nombre de secondes pendant lequel l'application doit s'initialiser, ce qui permet à vos VM de s'initialiser avant que l'autoscaler ne considère ses données d'utilisation comme fiables. Pour en savoir plus, consultez la section Période d'initialisation.
Facultatif : pour activer les contrôles de scaling, cliquez sur Contrôles de scaling vertical, puis cochez la case Activer les contrôles de scaling vertical. Pour plus d'informations, consultez la section sur les contrôles de scaling vertical.
Cliquez sur Enregistrer.
MIG_NAME
: nom d'un MIGPATH_TO_CUSTOM_METRIC_1
etPATH_TO_CUSTOM_METRIC_2
(facultatif) : chemins d'accès aux métriques personnalisées avec un format semblable àcustom.cloudmonitoring.googleapis.com/path/to/metric1
etcustom.cloudmonitoring.googleapis.com/path/to/metric2
. Pour en savoir plus, consultez la page Métriques personnalisées.PROJECT
: ID de votre projetZONE
: zone où se trouve votre groupe d'instances géréMIG_NAME
: nom d'un MIGPATH_TO_CUSTOM_METRIC_1
etPATH_TO_CUSTOM_METRIC_2
(facultatif) : chemins d'accès aux métriques personnalisées avec un format semblable àcustom.cloudmonitoring.googleapis.com/path/to/metric1
etcustom.cloudmonitoring.googleapis.com/path/to/metric2
. Pour en savoir plus, consultez la page Métriques personnalisées.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Gestion de plusieurs signaux par l'autoscaler
Pour gérer plusieurs signaux, l'autoscaler calcule le nombre de machines virtuelles recommandé pour chaque signal, puis sélectionne celui qui permet de mobiliser le plus grand nombre de machines virtuelles dans le groupe d'instances géré.
Un autoscaler ne peut gérer qu'un seul signal par type de métrique, sauf dans le cas de métriques Cloud Monitoring et de planifications de scaling. Vous pouvez choisir jusqu'à cinq signaux d'autoscaling pour les métriques Cloud Monitoring et créer jusqu'à 128 planifications par MIG. Par exemple, vous pouvez créer un autoscaler qui utilise jusqu'à un signal d'utilisation du processeur, jusqu'à un signal d'équilibrage de charge, jusqu'à cinq signaux de métriques personnalisées et jusqu'à 128 planifications de scaling.
Par exemple, vous pouvez définir un autoscaler avec tous les signaux suivants :
Dans cet exemple, supposons que l'autoscaler mesure les valeurs d'utilisation moyenne suivantes pour un MIG contenant 10 VM au moment de la mesure :
À l'aide des valeurs précédentes, l'autoscaler calcule le nombre recommandé de VM en fonction de chaque signal :
L'autoscaler choisit le signal qui crée plus grand nombre de VM du MIG et définit la taille recommandée du MIG sur cette valeur. Dans ce cas, l'autoscaler redimensionne le MIG sur 15 VM si la deuxième planification est actuellement active, ou 14 VM dans le cas contraire.
Créer un autoscaler avec plusieurs signaux
La création d'un autoscaler avec plusieurs signaux diffère légèrement selon que vous utilisez la console Google Cloud, gcloud CLI ou REST.
Console
gcloud
Pour créer un autoscaler avec plusieurs signaux, utilisez la commande
set-autoscaling
. Transmettez plusieurs spécifications de signal à l'aide de leurs indicateurs de ligne de commande respectifs.Par exemple, la commande suivante crée un autoscaler qui utilise l'utilisation du processeur, la capacité de diffusion de l'équilibrage de charge, deux métriques personnalisées et une planification de scaling. Les options
--max-num-replicas
et--min-num-replicas
limitent les tailles minimale et maximale du groupe d'instances géré.gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --target-cpu-utilization=0.8 \ --target-load-balancing-utilization=0.6 \ --custom-metric-utilization metric=PATH_TO_CUSTOM_METRIC_1,utilization-target=1000.0,utilization-target-type=GAUGE \ --custom-metric-utilization metric=PATH_TO_CUSTOM_METRIC_2,utilization-target=2000.0,utilization-target-type=DELTA_PER_SECOND \ --set-schedule=workday-capacity \ --schedule-cron="30 8 * * Mon-Fri" \ --schedule-duration-sec=30600 \ --schedule-min-required-replicas=10 \ --schedule-description="Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC" \ --min-num-replicas=1 \ --max-num-replicas=50
Remplacez l'élément suivant :
Vous ne pouvez transmettre qu'une option pour chaque type de métrique par commande
gcloud
, à l'exception des métriques personnalisées. Pour les métriques personnalisées, vous pouvez fournir plusieurs métriques personnalisées dans une seule commande en répétant l'option--custom-metric-utilization
.Pour en savoir plus sur la configuration des options pour chaque type de signal d'autoscaling, consultez les pages suivantes :
REST
Pour créer un autoscaler, utilisez la méthode
autoscalers.insert
pour un MIG zonal ou la méthoderegionAutoscalers.insert
pour un MIG régional.Par exemple, la requête suivante crée un autoscaler qui utilise l'utilisation du processeur, la capacité de diffusion de l'équilibrage de charge, deux métriques personnalisées et deux planifications de scaling. Les champs
maxNumReplicas
etminNumReplicas
limitent les tailles minimale et maximale du groupe d'instances géré.POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers { "autoscalingPolicy" : { "cpuUtilization":{ "utilizationTarget": 0.8 }, "loadBalancingUtilization":{ "utilizationTarget": 0.6 }, "customMetricUtilizations":[ { "metric": "PATH_TO_CUSTOM_METRIC_1", "utilizationTarget": 1000, "utilizationTargetType":"GAUGE" }, { "metric": "PATH_TO_CUSTOM_METRIC_2", "utilizationTarget": 2000, "utilizationTargetType": "DELTA_PER_SECOND" } ], "scalingSchedules": { "workday-capacity": { "minRequiredReplicas": 10, "schedule": "30 8 * * Mon-Fri", "durationSec": 30600, "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC" }, "january-30-2030-schedule": { "minRequiredReplicas": 30, "schedule": "0 0 30 1 * 2030", "timeZone": "America/New_York", "durationSec": 86400, "description": "Schedule a minimum of 30 VMs all day for January 30, 2030" } }, "maxNumReplicas": 50, "minNumReplicas": 1 }, "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroupManagers/MIG_NAME", "name": "MIG_NAME" }
Remplacez l'élément suivant :
Comme le montre cet exemple, vous pouvez fournir plusieurs métriques personnalisées et planifications de scaling dans la même requête.
Pour en savoir plus sur la configuration des champs pour chaque type de signal d'autoscaling, consultez les pages suivantes :
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/21 (UTC).
-