Wenn Sie eine Autoscaling-Richtlinie mit mehreren Signalen erstellen, erfolgt die Skalierung auf Grundlage des Signals, das die höchste Anzahl VM-Instanzen in der verwalteten Instanzgruppe (Managed Instance Group, MIG) bereitstellt. Dadurch wird sichergestellt, dass immer genügend VMs für die Verarbeitung der Anwendungsarbeitslasten vorhanden sind, und Sie können Anwendungen mit mehreren möglichen Engpässen skalieren.
Weitere Informationen zu den verschiedenen Arten von Autoscaling-Signalen finden Sie unter Autoscaling-Richtlinie.
Hinweise
- Informieren Sie sich über die Grundlagen des Autoscalings.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.
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
mit einer Zielvorgabe von 0,8loadBalancingUtilization
mit einer Zielvorgabe von 0,6customMetricUtilization
für Messwert1 mit einer Zielvorgabe von 1.000customMetricUtilization
für Messwert2 mit einer Zielvorgabe von 2.000.scalingSchedules
- Mindestens 6 VMs jeden Samstag und Sonntag um 00:00 Uhr
- Mindestens 15 VMs jeden Montag bis Freitag um 9:00 Uhr für 8 Stunden
- 0,5 für CPU-Auslastung
- 0,4 für Load-Balancing-Auslastung
- 1.100 für Messwert1
- 2.700 für Messwert2
- 7 VMs basierend auf der CPU-Auslastung
- 7 VMs basierend auf der Load-Balancing-Auslastung
- 11 VMs basierend auf Messwert1
- 14 VMs basierend auf Messwert2
- 6 VMs jeden Samstag und Sonntag für den ganzen Tag basierend auf dem ersten Skalierungsplan
- 15 VMs zwischen Montag bis Freitag, 9:00 Uhr bis 17:00 Uhr, basierend auf dem zweiten Skalierungsplan
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie in der Liste auf den Namen einer MIG. Klicken Sie dann auf Bearbeiten.
Aktivieren Sie Autoscaling auf der Bearbeitungsseite unter Autoscaling-Modus. Wählen Sie dazu im Drop-down-Menü die Option Ein: Der Gruppe Instanzen hinzufügen und aus ihr entfernen aus.
Geben Sie unter Mindestanzahl der Instanzen die Mindestanzahl von VMs ein, die Sie für diese MIG verwenden möchten. Die Mindestgröße dieser MIG bleibt unabhängig von den Autoscaling-Signalen immer erhalten.
Geben Sie unter Maximale Anzahl von Instanzen die maximale Anzahl von VMs ein, die für diese MIG verwendet werden sollen. Die maximale Größe dieser MIG wird niemals überschritten, unabhängig von der von den Autoscaling-Signalen generierten empfohlenen Größe.
Klicken Sie für jedes messwertbasierte Autoscaling-Signal, das Sie hinzufügen möchten, unter Autoscaling-Messwerte auf Messwert hinzufügen.
- Wählen Sie zum Erstellen eines Autoscaling-Signals basierend auf der durchschnittlichen CPU-Auslastung unter Messwerttyp im Drop-down-Menü die Option CPU-Auslastung aus. Geben Sie dann eine CPU-Zielauslastung ein und klicken Sie auf Fertig. Weitere Informationen hierzu finden Sie unter Basierend auf der CPU-Auslastung skalieren.
- Wählen Sie zum Erstellen eines Autoscaling-Signals basierend auf der HTTP-Load-Balancing-Bereitstellungskapazität unter Messwerttyp die Option HTTP-Load-Balancing-Auslastung aus dem Drop-down-Menü aus. Geben Sie dann eine Ziel-HTTP-Load-Balancing-Auslastung ein und klicken Sie auf Fertig. Weitere Informationen finden Sie unter Anhand von Load-Balancing-Bereitstellungskapazität skalieren.
- Wählen Sie zum Erstellen eines Autoscaling-Signals basierend auf Cloud Monitoring-Messwerten unter Messwerttyp die Option Cloud Monitoring-Messwert aus dem Drop-down-Menü aus. Füllen Sie dann die übrigen Felder aus und klicken Sie auf Fertig. Weitere Informationen finden Sie unter Anhand von Cloud Monitoring-Messwerten skalieren.
Erweitern Sie für jedes zeitplanbasierte Autoscaling-Signal, das Sie hinzufügen möchten, den Abschnitt Autoscaling-Zeitpläne, klicken Sie auf Zeitpläne verwalten und dann auf Zeitplan erstellen.
Füllen Sie im neuen Bereich Skalierungsplan erstellen die Pflichtfelder aus und klicken Sie auf Speichern. Klicken Sie dann im Bereich Skalierungspläne auf Fertig. Weitere Informationen hierzu finden Sie unter Anhand von Zeitplänen skalieren.
Geben Sie unter Initialisierungsphase die Anzahl der Sekunden ein, die Ihre Anwendung initialisieren muss, damit Ihre VMs die Initialisierung abschließen können, bevor das Autoscaling die Nutzungsdaten zuverlässig berücksichtigt. Weitere Informationen finden Sie unter Initialisierungsphase.
Optional: Klicken Sie zum Aktivieren der Steuerelemente für die Herunterskalierung auf Steuerelemente für die Herunterskalierung und dann auf das Kästchen Steuerelemente für die Herunterskalierung aktivieren. Weitere Informationen finden Sie unter Steuerelemente für die Herunterskalierung.
Klicken Sie auf Speichern.
MIG_NAME
: der Name einer MIG.PATH_TO_CUSTOM_METRIC_1
undPATH_TO_CUSTOM_METRIC_2
: Optional: Pfade zu benutzerdefinierten Messwerten mit einem Format, das etwacustom.cloudmonitoring.googleapis.com/path/to/metric1
undcustom.cloudmonitoring.googleapis.com/path/to/metric2
entspricht. Weitere Informationen finden Sie unter Benutzerdefinierte Messwerte.PROJECT
: Ihre Projekt-IDZONE
: Zone, in der sich die MIG befindetMIG_NAME
: der Name einer MIG.PATH_TO_CUSTOM_METRIC_1
undPATH_TO_CUSTOM_METRIC_2
: Optional: Pfade zu benutzerdefinierten Messwerten mit einem Format, das etwacustom.cloudmonitoring.googleapis.com/path/to/metric1
undcustom.cloudmonitoring.googleapis.com/path/to/metric2
entspricht. Weitere Informationen finden Sie unter Benutzerdefinierte Messwerte.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Autoscaling mit mehreren Signalen
Ein Autoscaling verarbeitet mehrere Signale, indem die empfohlene Anzahl von VMs für jedes Signal berechnet wird und dann das Signal ausgewählt wird, mit dem die größte Anzahl von VMs in der MIG erreicht wird.
Das Autoscaling kann ein Signal pro Messwerttyp verarbeiten, außer bei Cloud Monitoring-Messwerten und Skalierungsplänen. Sie können bis zu 5 Autoscaling-Signale für Cloud Monitoring-Messwerte auswählen und bis zu 128 Zeitpläne pro MIG erstellen. Sie können beispielsweise ein Autoscaling einrichten, das bis zu 1 CPU-Auslastungssignal, bis zu 1 Load-Balancing-Signal, bis zu 5 benutzerdefinierte Messwertsignale und bis zu 128 Skalierungspläne verwendet.
Sie können beispielsweise ein Autoscaling mit den folgenden Signalen definieren:
In diesem Beispiel wird vom Autoscaling die folgenden durchschnittlichen Auslastungswerte für eine MIG gemessen, die zum Zeitpunkt der Messung 10 VMs enthält:
Anhand der vorherigen Werte berechnet das Autoscaling die empfohlene Anzahl von VMs auf der Grundlage jedes Signals:
Der Autoscaler wählt das Signal aus, die zur größten Anzahl von VMs in der MIG führt, und legt die empfohlene Größe der MIG auf diesen Wert fest. In diesem Fall passt das Autoscaling die MIG auf 15 VMs an, wenn der zweite Zeitplan derzeit aktiv ist oder andernfalls auf 14 VMs.
Autoscaling mit mehreren Signalen erstellen
Je nachdem, ob Sie die Google Cloud Console, die gcloud CLI oder REST verwenden, gibt es beim Anlegen eines Autoscalings geringfügige Unterschiede.
Console
gcloud
Zum Erstellen eines Autoscalings mit mehreren Signalen verwenden Sie den Befehl
set-autoscaling
. Übergeben Sie mehrere Signalspezifikationen mithilfe ihrer jeweiligen Befehlszeilen-Flags.Der folgende Befehl erstellt beispielsweise ein Autoscaling, das CPU-Auslastung, Load-Balancing-Bereitstellungskapazität, zwei benutzerdefinierte Messwerte und einen Skalierungsplan verwendet. Die Flags
--max-num-replicas
und--min-num-replicas
schränken ein, wie groß oder klein die MIG erreichen kann.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
Dabei gilt:
Mit Ausnahme der Flags für benutzerdefinierte Messwerte können Sie pro
gcloud
-Befehl nur maximal ein Flag für jeden Messwerttyp übergeben. Bei benutzerdefinierten Messwerten können Sie mehrere benutzerdefinierte Messwerte in einem einzigen Befehl bereitstellen. Wiederholen Sie dazu das Flag--custom-metric-utilization
.Weitere Informationen zum Konfigurieren der Flags für jeden Signaltyp für die automatische Skalierung finden Sie auf den folgenden Seiten:
REST
Verwenden Sie zum Erstellen eines Autoscalings die Methode
autoscalers.insert
für eine zonale MIG oder die MethoderegionAutoscalers.insert
für eine regionale MIG.Durch die folgende Anfrage wird beispielsweise ein Autoscaling erstellt, das die CPU-Auslastung, die Load-Balancing-Bereitstellungskapazität, zwei benutzerdefinierte Messwerte und zwei Skalierungspläne verwendet. Die Felder
maxNumReplicas
undminNumReplicas
schränken ein, wie groß oder klein die MIG erreichen kann.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" }
Dabei gilt:
Wie in diesem Beispiel gezeigt, können Sie mehrere benutzerdefinierte Messwerte und Skalierungspläne in derselben Anfrage bereitstellen.
Weitere Informationen zum Konfigurieren der Felder für die einzelnen Signaltypen für die automatische Skalierung finden Sie auf den folgenden Seiten:
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-11-21 (UTC).
-