Utiliser plusieurs règles

Vous pouvez créer un autoscaler avec plusieurs règles. L'autoscaler évolue en fonction de la règle qui s'applique au plus grand nombre de machines virtuelles du groupe. Ainsi, vous aurez toujours suffisamment de machines virtuelles pour gérer les charges de travail de vos applications et vous pourrez les faire évoluer avec plusieurs goulots d'étranglement.

Avant de commencer

Gestion de plusieurs règles par l'autoscaler

Pour gérer plusieurs règles, l'autoscaler calcule le nombre de machines virtuelles recommandé pour chaque stratégie, puis sélectionne la règle qui s'applique au plus grand nombre de machines virtuelles du groupe.

Un autoscaler ne peut gérer qu'une seule règle par type de métrique, sauf dans le cas des métriques Stackdriver Monitoring. Vous pouvez en effet choisir jusqu'à cinq règles pour les métriques Stackdriver Monitoring. Par exemple, vous pouvez créer un autoscaler qui utilise une règle basée sur l'utilisation du processeur, une règle basée sur l'équilibrage de charge et jusqu'à cinq règles de métriques personnalisées.

Par exemple, si vous avez défini un autoscaler avec toutes les définitions de règle suivantes :

  • cpuUtilization avec une cible de 0,8
  • loadBalancingUtilization avec une cible de 0,6
  • customMetricUtilization pour la métrique "metric1" avec une cible de 1 000
  • customMetricUtilization pour la métrique "metric2" avec une cible de 2 000

L'autoscaler évalue les valeurs moyennes suivantes pour le groupe d'instances géré qui contient 10 machines virtuelles :

  • 0,5 pour l'utilisation du processeur
  • 0,4 pour l'utilisation de l'équilibrage de charge
  • 1 100 pour la métrique "metric1"
  • 2 700 pour la métrique "metric2"

L’autoscaler utilise les valeurs moyennes pour recommander des modifications à apporter au nombre de machines virtuelles, en fonction de chaque règle :

  • 7 machines virtuelles basées sur l'utilisation du processeur
  • 7 machines virtuelles basées sur l'utilisation de l'équilibrage de charge
  • 11 machines virtuelles basées sur la métrique "metric1"
  • 14 machines virtuelles basées sur la métrique "metric2"

Étant donné que cet autoscaler comprend plusieurs règles, il prend en compte la plus grande valeur recommandée (14 machines dans ce cas) et redimensionne le groupe d'instances géré en 14 machines virtuelles.

Créer un autoscaler avec plusieurs règles

La procédure de création d'un autoscaler avec plusieurs règles est légèrement différente si vous utilisez l'outil de ligne de commande gcloud ou l'API.

Console


  1. Accédez à la page Groupes d'instances.
  2. Sélectionnez le groupe d'instances souhaité dans la liste, puis cliquez sur Modifier.
  3. Dans la section Autoscaling de la page d'informations du groupe d'instances, sélectionnez On (Activé) dans le menu déroulant pour activer l'autoscaling.
  4. Dans la section Autoscale based on (Autoscaling basé sur), sélectionnez Multiple metrics (Plusieurs métriques) dans le menu déroulant.

    Capture d'écran d'une sélection de plusieurs règles

  5. Si vous le souhaitez, remplissez les champs relatifs à l'utilisation du processeur et de l'équilibrage de charge.

  6. Pour ajouter des règles de métriques personnalisées, cliquez sur l'icône + dans la section Target monitoring metrics (Métriques de surveillance ciblées), puis remplissez les champs de votre règle de métrique personnalisée.

    Capture d'écran de métriques personnalisées

    Vous pouvez ajouter plusieurs règles de métriques personnalisées en cliquant sur l'icône +.

gcloud


Pour créer un autoscaler avec plusieurs règles, transmettez plusieurs spécifications de règle à l'aide des indicateurs de ligne de commande correspondants. La commande suivante crée un autoscaler qui utilise une règle basée sur l'utilisation du processeur et sur deux métriques personnalisées :

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --target-cpu-utilization 0.8 \
    --custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/path/to/metric1,utilization-target=1000.0,utilization-target-type=GAUGE \
    --custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/path/to/metric2,utilization-target=2000.0,utilization-target-type=DELTA_PER_SECOND \
    --max-num-replicas 50

Vous ne pouvez transmettre qu'un indicateur maximum pour chaque type de métriques, sauf pour les métriques personnalisées.

En effet, vous pouvez fournir plusieurs métriques personnalisées en répétant les indicateurs suivants :

--custom-metric-utilization metric=METRIC,utilization-target=TARGET,utilization-target-type=TYPE

API


Dans l'API, exécutez une requête POST dont le corps contient toutes les règles de votre choix :

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/autoscalers

{
  "autoscalingPolicy" : {
    "cpuUtilization":{
      "utilizationTarget": 0.8
    },
    "customMetricUtilizations":[
      {
        "metric": "custom.cloudmonitoring.googleapis.com/path/to/metric1",
        "utilizationTarget": 1000,
        "utilizationTargetType":"GAUGE"
      },
      {
        "metric": "custom.cloudmonitoring.googleapis.com/path/to/metric2",
        "utilizationTarget": 2000,
        "utilizationTargetType": "DELTA_PER_SECOND"
      }
    ],
    "loadBalancingUtilization":{
      "utilizationTarget": 0.6
    },
    "maxNumReplicas": 50,
    "minNumReplicas": 1
    }
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroupManagers/example-managed-instance-group",
  "name": "example-autoscaler"
}
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine