Wenn Sie ein Autoscaling mit mehreren Richtlinien erstellen, erfolgt die Skalierung anhand jener Richtlinie, mit der die größte Anzahl an virtuellen Maschinen in der Gruppe vorhanden ist. So stehen immer genügend virtuelle Maschinen für Ihre Anwendungs-Arbeitslasten bereit und Anwendungen mit mehreren möglichen Engpässen können skaliert werden.
Vorbereitung
- Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten:
- Installieren Sie das gcloud-Befehlszeilentool oder aktualisieren Sie es auf die neueste Version.
- Legen Sie eine Standardregion und -zone fest.
- Wenn Sie die API-Beispiele in dieser Anleitung verwenden möchten, richten Sie den API-Zugang ein.
- Lesen Sie die Autoscaling-Richtlinien.
Autoscaling mit mehreren Richtinien
Das Autoscaling berechnet bei Verwendung mehrerer Richtlinien die empfohlene Anzahl an virtuellen Maschinen für jede Richtlinie. Die Skalierung erfolgt auf Grundlage jener Richtlinie, mit der die größte Anzahl an virtuellen Maschinen in der Gruppe bleibt.
Ein Autoscaling kann eine Richtlinie pro Messwerttyp verarbeiten, außer im Fall von Cloud Monitoring-Messwerten. Sie können bis zu fünf Richtlinien für Cloud Monitoring-Messwerte auswählen. Sie können beispielsweise ein Autoscaling einrichten, das eine CPU-Nutzungsrichtlinie, eine Load-Balancing-Richtlinie und bis zu fünf benutzerdefinierte Messwertrichtlinien verwendet.
Angenommen, Sie haben ein Autoscaling mit den folgenden Richtliniendefinitionen festgelegt:
cpuUtilization
mit einer Zielvorgabe von 0,8.loadBalancingUtilization
mit einer Zielvorgabe von 0,6.customMetricUtilization
für Messwert1 mit einer Zielvorgabe von 1.000.customMetricUtilization
für Messwert2 mit einer Zielvorgabe von 2.000.
Das Autoscaling analysiert die folgenden Durchschnittswerte für die verwaltete Instanzgruppe, die zehn virtuelle Maschinen enthält:
- 0,5 für CPU-Auslastung.
- 0,4 für Load-Balancing-Auslastung.
- 1.100 für Messwert1.
- 2.700 für Messwert2.
Anhand dieser Durchschnittswerte empfiehlt das Autoscaling für jede Richtlinie die passende Anzahl an virtuellen Maschinen.
- 7 virtuelle Maschinen basierend auf der CPU-Auslastung.
- 7 virtuelle Maschinen basierend auf der Load-Balancing-Auslastung.
- 11 virtuelle Maschinen basierend auf Messwert1.
- 14 virtuelle Maschinen basierend auf Messwert2.
Da hier mehr als eine Richtlinie angewendet wird, wählt das Autoscaling automatisch den größten empfohlenen Wert – in diesem Fall 14 virtuelle Maschinen – und ändert die Größe der verwalteten Instanzgruppe auf 14 virtuelle Maschinen.
Autoscaling mit mehreren Richtlinien erstellen
Je nachdem, ob Sie das gcloud
-Befehlszeilentool oder die API verwenden, gibt es beim Anlegen eines Autoscalings geringfügige Unterschiede.
Console
- Gehen Sie zur Seite Instanzgruppen.
- Wählen Sie die gewünschte Instanzgruppe aus der Liste aus und klicken Sie auf Edit.
- Wählen Sie zum Aktivieren der Funktion Autoscaling unter Autoscaling auf der Seite der Instanzgruppendetails im Drop-down-Menü die Option On aus.
Wählen Sie im Drop-down-Menü unter Autoscale based on die Option Multiple metrics aus.
Füllen Sie bei Bedarf die Felder für CPU-Auslastung und Auslastung bei Load-Balancing aus.
Klicken Sie zum Hinzufügen eigener Messwertrichtlinien im Abschnitt Target monitoring metrics auf das Symbol + und füllen Sie die für eine benutzerdefinierte Messwertrichtlinie benötigten Felder aus.
Sie können durch Klicken auf das Symbol + mehrere benutzerdefinierte Messwertrichtlinien hinzufügen.
gcloud
Zum Erstellen eines Autoscalings mit mehreren Richtlinien müssen Sie die Spezifikationen für mehrere Richtlinien mit den jeweiligen Befehlszeilenflags festlegen. Mit dem folgenden Befehl wird ein Autoscaling erstellt, das die CPU-Auslastung und zwei benutzerdefinierte Messwerte verwendet:
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
Mit Ausnahme der Flags für benutzerdefinierte Messwerte können Sie pro Messwerttyp jeweils maximal ein Flag angeben.
Bei Verwendung von benutzerdefinierten Messwerten können Sie mehrere benutzerdefinierte Messwerte durch die Wiederholung der folgenden Parameter bestimmen:
--custom-metric-utilization metric=METRIC,utilization-target=TARGET,utilization-target-type=TYPE
API
In der API können Sie eine POST
-Anfrage mit allen gewünschten Richtlinien stellen:
POST https://compute.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" }