Wenn Sie ein Autoscaling mit mehreren Richtlinien erstellen, erfolgt die Skalierung auf Grundlage jener Richtlinie, die über die größte Anzahl an virtuellen Maschinen in der Gruppe verfügt. Auf diese Weise wird sichergestellt, dass immer genügend virtuelle Maschinen für Ihre Anwendungs-Workloads bereitstehen und Anwendungen mit mehreren möglichen Engpässen skaliert werden können.
Vorbereitung
- So können Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden:
- 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, die pro Richtlinie benötigt werden. Die Skalierung erfolgt auf Grundlage jener Richtlinie, die über die größte Anzahl an virtuellen Maschinen in der Gruppe verfügt.
Ein Autoscaling kann eine Richtlinie pro Messwerttyp verarbeiteten, außer im Fall von Stackdriver Monitoring-Messwerten. Sie können bis zu fünf Richtlinien für Stackdriver Monitoring-Messwerte auswählen. Sie können beispielsweise ein Autoscaling einrichten, das eine CPU-Nutzungsrichtlinie, eine Lastausgleichsrichtlinie und bis zu fünf benutzerdefinierte Messwertrichtlinien verwendet.
Zum Beispiel, wenn Sie die folgenden Autoscaling-Richtlinien festgelegt haben:
cpuUtilization
mit einer Zielauslastung von 0,8.loadBalancingUtilization
mit einer Zielauslastung von 0,6.customMetricUtilization
für Messwert1 mit einer Zielvorgabe von 1.000.customMetricUtilization
für Messwert2 mit einer Zielauslastung 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 Auslastung bei Lastenausgleich.
- 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 Auslastung bei Lastenausgleich.
- 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.
Konsole
- Gehen Sie zur Seite Instanzgruppen.
- Wählen Sie die gewünschte Instanzgruppe aus der Liste aus und klicken Sie auf Bearbeiten.
- Wählen Sie zum Aktivieren der Autoscaling-Funktion auf der Detailseite "Instanzgruppen" im Drop-down-Menü unter Autoscaling die Option On (Ein) aus.
Wählen Sie im Drop-down-Menü unter Autoscale based on (Automatisch skalieren auf der Grundlage von) die Option Multiple metrics (Mehrere Messwerte) 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 (Ziel-Kontrollmesswerte) 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 Befehlszeilenparametern festlegen. Der folgende Befehl erstellt ein Autoscaling, das 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://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" }