Durch das Autoscaling auf Basis von Cloud Monitoring-Messwerten können Sie die Kapazität entsprechend den Messwerten Ihrer Anwendung anpassen. Wenn Sie eine MIG anhand eines Messwerts automatisch skalieren, erstellt das Autoscaling VMs, wenn der Messwert zunimmt, und löscht VMs, wenn der Wert sinkt.
Sie können beispielsweise definieren, wie viele VMs Sie pro Nutzerzahl, Latenz oder der Anzahl der Nachrichten in einem Pub/Sub-Abo benötigen. Sie können die integrierten Messwerte verwenden, die vom Monitoringdienst bereitgestellt werden, oder die benutzerdefinierten Messwerte, die Sie aus Ihrer Anwendung exportieren.
In diesem Dokument wird beschrieben, wie Sie eine verwaltete Instanzgruppe (Managed Instance Group, MIG) anhand von Monitoringmesswerten automatisch skalieren.
Sie können MIGs auch anhand von CPU-Auslastung, Load-Balancing-Bereitstellungskapazität oder Zeitplänen automatisch skalieren.
Hinweise
- Grundlagen von Autoscaling
- Informationen zu den Monitoring-Messwertkonzepten, die in einer Autoscaling-Konfiguration verwendet werden.
- Wenn das Autoscaling auf einem Ops-Agent-Messwert basieren soll, installieren Sie den Ops-Agent.
-
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 wie folgt 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.
- Sie können das Autoscaling anhand von bis zu fünf Monitoring-Messwerten pro MIG konfigurieren.
- Sie können ein Autoscaling auf der Grundlage von Messwerten durchführen, die nur die Werttypen
INT64
oderDOUBLE
haben. Andere Werttypen werden nicht unterstützt. - Sie können denselben Messwert nicht mehr als einmal in einer Autoscaling-Richtlinie konfigurieren.
Nutzungsziel: Wenn das Autoscaling einen Messwert bei einem bestimmten Wert halten soll, konfigurieren Sie ein Nutzungsziel. Das Autoscaling erstellt VMs, wenn der Messwert über dem Ziel liegt, und löscht VMs, wenn der Messwert unter dem Ziel liegt. Dies ist für Messwerte wie Netzwerk-Traffic, Arbeitsspeicher-/Laufwerksnutzung oder die durchschnittliche Latenz Ihrer Anwendung nützlich. Das folgende Diagramm zeigt, wie das Autoscaling VMs als Reaktion auf einen Messwert hinzufügt und entfernt, um das Nutzungsziel aufrechtzuerhalten.
Zuweisung einzelner Instanzen: Wenn Sie das Autoscaling darauf basierend möchten, wie viele Aufgaben den einzelnen VMs zugeordnet werden können, konfigurieren Sie eine Einzelinstanz-Zuweisung. Die erstellte Einzelinstanz-Zuweisung gibt an, wie viele Aufgaben die einzelnen VMs ausführen sollen. Das Autoscaling teilt den Messwert durch den Wert der Einzelinstanz-Zuweisung, um zu berechnen, wie viele VMs benötigt werden. Beispiel: Wenn der Messwert 100 beträgt und die Einzelinstanz-Zuweisung 5 ist, erstellt das Autoscaling 20 VMs in der MIG. Dies ist hilfreich für Messwerte zur Arbeitsdauer, darunter die Pub/Sub-Warteschlangenlänge oder die Anzahl der Batch-Jobs. Die Einzelinstanz-Zuweisung gilt nicht für Messwerte, die von jeder VM stammen. Das folgende Diagramm zeigt die proportionale Beziehung zwischen dem Messwert und der Anzahl der VMs bei der Skalierung mit einer Einzelinstanz-Zuweisung.
Wenn die Messwerte von allen einzelnen VMs in Ihrer MIG stammen, berechnet das Autoscaling den durchschnittlichen Messwert für alle VMs in der MIG und vergleicht ihn mit dem Nutzungsziel. Beispiel: Wenn Sie das Autoscaling mit dem Messwert
tcp_connections
vornehmen möchten, der die Anzahl der TCP-Verbindungen auf einer VM angibt, verwendet das Autoscaling zum Vergleich mit dem Zielwert einen Durchschnittswert an TCP-Verbindungen über alle VMs der MIG hinweg. Wenn Sie solche von einer VM stammenden Messwerte verwenden, kann die MIG nicht auf0
herunterskaliert werden, da das Autoscaling mindestens eine VM benötigt, um einen Messwert zu veröffentlichen.Wenn der Messwert für die gesamte MIG gilt und nicht von den VMs in Ihrer MIG stammt, vergleicht das Autoscaling den Messwert mit dem Nutzungsziel. Sie können beispielsweise einen benutzerdefinierten Messwert verwenden, der die Latenz Ihrer Anwendung misst.
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Wenn Sie keine verwaltete Instanzgruppe haben, erstellen Sie eine. Klicken Sie andernfalls auf den Namen einer MIG in der Liste, um die Seite der Instanzgruppe zu öffnen.
Klicken Sie auf Bearbeiten.
Wenn keine Autoscaling-Konfiguration vorhanden ist:
- Klicken Sie unter Autoscaling auf Autoscaling konfigurieren.
- Wählen Sie unter Autoscaling-Modus die Option Ein: Der Gruppe Instanzen hinzufügen und daraus entfernen, um das Autoscaling zu aktivieren.
Wenn unter Autoscaling im Abschnitt Autoscaling-Signale ein Signal für einen Cloud Monitoring-Messwert vorhanden ist, klicken Sie zum Bearbeiten darauf oder auf Signal hinzufügen, um ein neues Signal hinzuzufügen.
Legen Sie als Signaltyp den Cloud Monitoring-Messwert fest.
Klicken Sie auf Konfigurieren. Führen Sie im sich öffnenden Bereich Ressource und Messwert die folgenden Schritte aus:
- Klicken Sie auf Messwert auswählen.
- Wählen Sie den Messwert aus, den Sie für das Autoscaling verwenden möchten. Sie können die Messwerte nach beliebigen Keywords filtern, z. B. Speicher, Byte, Laufwerk.
- Klicken Sie auf Anwenden. Im Bereich wird ein Diagramm mit den Daten des ausgewählten Messwerts angezeigt.
Wenn Sie bestimmte Daten aus dem Messwert verwenden möchten, fügen Sie einen Filter anhand von Labels hinzu. Gehen Sie dafür so vor:
- Klicken Sie im Abschnitt Filter auf Filter hinzufügen.
- Wählen Sie ein Label aus und geben Sie einen Wert ein.
- Klicken Sie auf Fertig. Das Diagramm wird aktualisiert und zeigt den gefilterten Wert des Messwerts an.
Sie können den aggregierten Wert des Messwerts aufrufen, der zum automatischen Skalieren Ihrer MIG verwendet wird. Wählen Sie dazu die Schaltfläche Aggregation im Diagramm anzeigen. Das Diagramm wird aktualisiert und zeigt den aggregierten Wert an.
Wählen Sie unter Messwertzieloptionen für das Autoscaling die Option Nutzungsziel aus.
Machen Sie folgende Angaben:
- Nutzungsziel: Geben Sie den Wert an, den das Autoscaling beibehalten muss. Dieser Wert muss eine positive Ziffer sein. Sowohl 24.5 als auch 100 sind beispielsweise gültige Werte.
- Nutzungszieltyp: Wählen Sie einen Zieltyp aus, der der Messungsart des Messwerts entspricht. Für genaue Vergleiche, wenn das Nutzungsziel pro Sekunde gemessen wird, verwenden Sie Delta/Sek. als Zieltyp. Verwenden Sie entsprechend Delta/Min. für ein Nutzungsziel, das pro Minute gemessen wird.
- Gauge: Das Autoscaling berechnet den durchschnittlichen Wert der in den letzten Minuten erfassten Daten und vergleicht ihn mit dem Nutzungsziel.
- Delta/Min.: Das Autoscaling berechnet die durchschnittliche Wachstumsrate pro Minute und vergleicht sie mit dem Nutzungsziel.
- Delta/Sek.: Das Autoscaling berechnet die durchschnittliche Wachstumsrate pro Sekunde und vergleicht sie mit dem Nutzungsziel.
Wenn Sie mit der Konfiguration des Messwerts fertig sind, klicken Sie auf Auswählen.
- Klicken Sie auf Messwert auswählen.
Prüfen Sie die Messwertdetails und klicken Sie auf Fertig.
Klicken Sie auf Speichern, um die Konfiguration abzuschließen.
MIG_NAME
: Die MIG, der Sie Autoscaling hinzufügen möchten.MAX_INSTANCES
: Die maximale Anzahl an VMs, die von der MIG verwendet werden können.MIN_INSTANCES
: Mindestzahl an VMs, die die MIG haben muss.METRIC_URL
: Eine protokollfreie URL eines Monitoring-Messwerts. Beispiel:compute.googleapis.com/instance/uptime
Wenn Sie einen benutzerdefinierten Messwert verwenden, muss er die Anforderungen für benutzerdefinierte Messwerte erfüllen.TARGET_VALUE
: Der Messwert, den das Autoscaling aufrechtzuerhalten versucht.TARGET_TYPE
: Der Werttyp des Messwerts.gauge
das Autoscaling berechnet den durchschnittlichen Wert der in den letzten Minuten erfassten Daten und vergleicht ihn mit dem Nutzungsziel.delta-per-minute
das Autoscaling berechnet die durchschnittliche Wachstumsrate pro Minute und vergleicht sie mit dem Nutzungsziel.delta-per-second
das Autoscaling berechnet das durchschnittliche Wachstum pro Sekunde und vergleicht es mit dem Nutzungsziel. Wenn Sie das Nutzungsziel in Sekunden festlegen möchten, verwenden Sie für genaue Vergleichedelta-per-second
als Zieltyp. Verwenden Sie entsprechenddelta-per-minute
für ein Nutzungsziel in Minuten.
METRIC_FILTER
: Wenden Sie einen Filter an, um einen einzelnen Wert aus einem Messergebnis mit mehreren Werten zu verwenden und den Typ der überwachten Ressource anzugeben. Wenn Sie einen Messwert von jeder VM verwenden, müssen Sie den Typ der überwachten Ressource nicht angeben, dagce_instance
standardmäßig verwendet wird. Verwenden Sie für andere Messwerteresource.type
im Filterausdruck, um die überwachte Ressource anzugeben. Weitere Informationen zum Messwertfilter finden Sie unter Konzepte der Messwertüberwachung.PROJECT_ID
: Ihre Projekt-ID.ZONE
: Die Zone, in der sich die MIG befindet.AUTOSCALER_NAME
: Der Name des Autoscalings.MIG_NAME
: Die MIG, der Sie Autoscaling hinzufügen möchten.MAX_INSTANCES
: Die maximale Anzahl an VMs, die von der MIG verwendet werden können.MIN_INSTANCES
: Mindestzahl an VMs, die die MIG haben muss.METRIC_URL
: Eine protokollfreie URL eines Monitoring-Messwerts. Beispiel:compute.googleapis.com/instance/uptime
Wenn Sie einen benutzerdefinierten Messwert verwenden, muss er die Anforderungen für benutzerdefinierte Messwerte erfüllen.TARGET_VALUE
: Der Messwert, den das Autoscaling aufrechtzuerhalten versucht.TARGET_TYPE
: Der Werttyp des Messwerts.GAUGE
: Das Autoscaling berechnet den durchschnittlichen Wert der in den letzten Minuten erfassten Daten und vergleicht ihn mit dem Nutzungsziel.DELTA_PER_MINUTE
Das Autoscaling berechnet die durchschnittliche Wachstumsrate pro Minute und vergleicht sie mit dem Nutzungsziel.DELTA_PER_SECOND
Das Autoscaling berechnet die durchschnittliche Wachstumsrate pro Sekunde und vergleicht sie mit dem Nutzungsziel. Wenn Sie das Nutzungsziel in Sekunden festlegen möchten, verwenden Sie für genaue VergleicheDELTA_PER_SECOND
als Zieltyp. Verwenden Sie entsprechendDELTA_PER_MINUTE
für ein Nutzungsziel in Minuten.
METRIC_FILTER
: Wenden Sie einen Filter an, um einen einzelnen Wert aus einem Messergebnis mit mehreren Werten zu verwenden und den Typ der überwachten Ressource anzugeben. Wenn Sie einen Messwert von jeder VM verwenden, müssen Sie den Typ der überwachten Ressource nicht angeben, dagce_instance
standardmäßig verwendet wird. Bei anderen Messwerten müssen Sie die überwachte Ressource mit demresource.type
-Selektor angeben. Weitere Informationen zum Messwertfilter finden Sie unter Konzepte der Messwertüberwachung.Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Wenn Sie keine verwaltete Instanzgruppe haben, erstellen Sie eine. Klicken Sie andernfalls auf den Namen einer MIG in der Liste, um die Seite der Instanzgruppe zu öffnen.
Klicken Sie auf Bearbeiten.
Wenn keine Autoscaling-Konfiguration vorhanden ist:
- Klicken Sie unter Autoscaling auf Autoscaling konfigurieren.
- Wählen Sie unter Autoscaling-Modus die Option Ein: Der Gruppe Instanzen hinzufügen und daraus entfernen, um das Autoscaling zu aktivieren.
Wenn unter Autoscaling im Abschnitt Autoscaling-Signale ein Signal für einen Monitoring-Messwert vorhanden ist, klicken Sie zum Bearbeiten darauf oder klicken Sie auf Fügen Sie ein Signal hinzu, um einen neuen Messwert hinzuzufügen.
Legen Sie als Signaltyp den Cloud Monitoring-Messwert fest.
Klicken Sie auf Konfigurieren. Führen Sie im sich öffnenden Bereich Ressource und Messwert die folgenden Schritte aus:
- Klicken Sie auf Messwert auswählen.
- Wählen Sie den Messwert aus, den Sie für das Autoscaling verwenden möchten. Sie können die Messwerte nach beliebigen Keywords filtern, z. B. Speicher, Byte, Laufwerk.
- Klicken Sie auf Anwenden. Im Bereich wird ein Diagramm mit den Daten des ausgewählten Messwerts angezeigt.
Wenn Sie bestimmte Daten aus dem Messwert verwenden möchten, fügen Sie einen Filter anhand von Labels hinzu. Gehen Sie dafür so vor:
- Klicken Sie im Abschnitt Filter auf Filter hinzufügen.
- Wählen Sie ein Label aus und geben Sie einen Wert ein.
- Klicken Sie auf Fertig. Das Diagramm wird aktualisiert und zeigt den gefilterten Messwert an.
Sie können den aggregierten Wert des Messwerts aufrufen, der zum automatischen Skalieren Ihrer MIG verwendet wird. Wählen Sie dazu die Schaltfläche Aggregation im Diagramm anzeigen. Das Diagramm wird aktualisiert und zeigt den aggregierten Wert an.
Wählen Sie im Bereich Messwertzieloptionen für das Autoscaling die Option Einzel-VM-Instanzzuweisung aus.
Geben Sie einen Wert für Einzelinstanz-Zuweisung an, der die Menge der Aufgaben darstellt, die jeder VM in der MIG zugewiesen werden soll.
Wenn Sie mit der Konfiguration des Messwerts fertig sind, klicken Sie auf Auswählen.
- Klicken Sie auf Messwert auswählen.
Prüfen Sie die Messwertdetails und klicken Sie auf Fertig.
Klicken Sie auf Speichern, um die Konfiguration abzuschließen.
MIG_NAME
: Der Name der MIG, der Sie Autoscaling hinzufügen möchten.MAX_INSTANCES
: Die maximale Anzahl an VMs, die von der MIG verwendet werden können.MIN_INSTANCES
: Mindestzahl an VMs, die die MIG haben muss.METRIC_URL
: Eine protokollfreie URL eines Monitoring-Messwerts. Beispiel:compute.googleapis.com/instance_group/size
Wenn Sie einen benutzerdefinierten Messwert verwenden, muss er die Anforderungen für benutzerdefinierte Messwerte erfüllen.METRIC_FILTER
: Wenden Sie einen Filter an, um einen einzelnen Wert aus einem Messergebnis mit mehreren Werten zu verwenden und den Typ der überwachten Ressource anzugeben. Weitere Informationen zum Messwertfilter finden Sie unter Konzepte der Messwertüberwachung.INSTANCE_ASSIGNMENT
: Die Menge an Arbeit, die jeder Instanz in der MIG zugewiesen wird.PROJECT_ID
: Ihre Projekt-ID.ZONE
: Die Zone, in der sich die MIG befindet.AUTOSCALER_NAME
: Der Name des Autoscalings.MIG_NAME
: Der Name der MIG, der Sie Autoscaling hinzufügen möchten.MAX_INSTANCES
: Die maximale Anzahl an VMs, die von der MIG verwendet werden können.MIN_INSTANCES
: Mindestzahl an VMs, die die MIG haben muss.METRIC_URL
: Eine protokollfreie URL eines Monitoring-Messwerts. Beispiel:compute.googleapis.com/instance_group/size
Wenn Sie einen benutzerdefinierten Messwert verwenden, muss er die Anforderungen für benutzerdefinierte Messwerte erfüllen.METRIC_FILTER
: Wenden Sie einen Filter an, um einen einzelnen Wert aus einem Messergebnis mit mehreren Werten zu verwenden und den Typ der überwachten Ressource anzugeben. Weitere Informationen zum Messwertfilter finden Sie unter Konzepte der Messwertüberwachung.INSTANCE_ASSIGNMENT
: Die Menge an Arbeit, die jeder Instanz in der MIG zugewiesen wird.- Eine MIG mit dem Namen
our-instance-group
wird für eine bestimmte Aufgabe zugewiesen. Die Gruppe befindet sich in der Zoneus-central1-a
. - Sie haben einen benutzerdefinierten Monitoring-Messwert, der einen Wert exportiert, der auf einem bestimmten Level gehalten werden soll. In diesem Beispiel wird davon ausgegangen, dass der Messwert die durchschnittliche Latenz von Verarbeitungsabfragen darstellt, die der Gruppe zugewiesen sind.
- Der benutzerdefinierte Messwert heißt
custom.googleapis.com/example_average_latency
. - Der benutzerdefinierte Messwert hat ein Label mit einem Schlüssel namens
group_name
und einem Wert, der dem Namen der MIG,our-instance-group
, entspricht. - Der benutzerdefinierte Messwert exportiert Daten für die globale überwachte Ressource, d. h., sie ist keiner bestimmten VM zugeordnet.
- Der benutzerdefinierte Messwert heißt
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie in der Liste auf den Namen Ihrer MIG, um die Übersichtsseite der Instanzgruppe zu öffnen.
Klicken Sie auf Bearbeiten.
Wenn keine Autoscaling-Konfiguration vorhanden ist:
- Klicken Sie unter Autoscaling auf Autoscaling konfigurieren.
- Wählen Sie unter Autoscaling-Modus die Option Ein: Der Gruppe Instanzen hinzufügen und daraus entfernen, um das Autoscaling zu aktivieren.
Klicken Sie unter Autoscaling im Abschnitt Autoscaling-Signale auf Signal hinzufügen.
Legen Sie als Signaltyp den Cloud Monitoring-Messwert fest.
Klicken Sie auf Konfigurieren. Der Bereich Ressource und Messwert wird geöffnet.
- Klicken Sie auf Messwert auswählen.
- Wählen Sie unter Global > Benutzerdefinierte Messwerte Ihren Messwert aus.
- Klicken Sie auf Anwenden.
- Führen Sie im Abschnitt Filter folgende Schritte aus:
- Klicken Sie auf Filter hinzufügen.
- Wählen Sie im Drop-down-Menü Label die Option
group_name
aus. - Geben Sie im Feld Wert
our-instance-group
ein. - Klicken Sie auf Fertig. Das Diagramm wird aktualisiert und zeigt den gefilterten Wert aus dem Messwert an.
- Führen Sie im Abschnitt Messwertzieloptionen für das Autoscaling die folgenden Schritte aus:
- Wählen Sie Nutzungsziel aus.
- Geben Sie für das Nutzungsziel den Wert 250 ein.
- Legen Sie für den Nutzungszieltyp Delta/Sek. fest.
- Klicken Sie nach der Konfiguration des Messwerts auf Auswählen.
- Klicken Sie auf Messwert auswählen.
Prüfen Sie die Messwertdetails und klicken Sie dann auf Fertig.
Klicken Sie abschließend auf Speichern.
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie in der Liste auf den Namen Ihrer MIG, um die Übersichtsseite der Instanzgruppe zu öffnen.
Klicken Sie auf Bearbeiten.
Wenn keine Autoscaling-Konfiguration vorhanden ist:
- Klicken Sie unter Autoscaling auf Autoscaling konfigurieren.
- Wählen Sie unter Autoscaling-Modus die Option Ein: Der Gruppe Instanzen hinzufügen und daraus entfernen, um das Autoscaling zu aktivieren.
Klicken Sie im Bereich Autoscaling-Signale auf Signal hinzufügen.
Setzen Sie den Signaltyp auf Cloud Pub/Sub-Warteschlange.
Wählen Sie ein Thema aus. Wenn Sie ein neues Thema erstellen möchten, klicken Sie auf Thema erstellen, um ein Thema zu erstellen.
Wählen Sie das Abo aus, anhand dessen Sie Ihre MIG automatisch skalieren möchten. Wenn Sie ein neues Abo benötigen, klicken Sie auf Abo erstellen, um ein Abo zu erstellen.
Geben Sie im Feld Anzahl der Nachrichten, die jeder VM zugewiesen werden sollen die Anzahl der nicht bestätigten Nachrichten an, die jede VM verarbeiten soll.
Klicken Sie auf Fertig.
Klicken Sie abschließend auf Speichern.
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie in der Liste auf den Namen Ihrer MIG, um die Übersichtsseite der Instanzgruppe zu öffnen.
Klicken Sie auf Bearbeiten.
Wenn keine Autoscaling-Konfiguration vorhanden ist:
- Klicken Sie unter Autoscaling auf Autoscaling konfigurieren.
- Wählen Sie unter Autoscaling-Modus die Option Ein: Der Gruppe Instanzen hinzufügen und daraus entfernen, um das Autoscaling zu aktivieren.
Klicken Sie unter Autoscaling im Abschnitt Autoscaling-Signale auf Signal hinzufügen.
Legen Sie als Signaltyp den Cloud Monitoring-Messwert fest.
Klicken Sie auf Konfigurieren. Der Bereich Ressource und Messwert wird geöffnet.
- Klicken Sie auf Messwert auswählen.
- Wählen Sie VM-Instanz > Instanz > Empfangene Byte (
compute.googleapis.com/instance/network/received_bytes_count
) aus. - Klicken Sie auf Anwenden.
- Wählen Sie VM-Instanz > Instanz > Empfangene Byte (
- Führen Sie im Abschnitt Messwertzieloptionen für das Autoscaling die folgenden Schritte aus:
- Achten Sie darauf, dass Nutzungsziel ausgewählt ist.
- Geben Sie einen Nutzungszielwert ein.
- Legen Sie einen Nutzungszieltyp fest.
- Klicken Sie nach der Konfiguration des Messwerts auf Auswählen.
- Klicken Sie auf Messwert auswählen.
Prüfen Sie die Messwertdetails und klicken Sie dann auf Fertig.
Klicken Sie abschließend auf Speichern.
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie in der Liste auf den Namen Ihrer MIG, um die Übersichtsseite der Instanzgruppe zu öffnen.
Klicken Sie auf der Übersichtsseite der Instanzgruppe auf Bearbeiten.
Wenn keine Autoscaling-Konfiguration vorhanden ist:
- Klicken Sie unter Autoscaling auf Autoscaling konfigurieren.
- Wählen Sie unter Autoscaling-Modus die Option Ein: Der Gruppe Instanzen hinzufügen und daraus entfernen, um das Autoscaling zu aktivieren.
Klicken Sie unter Autoscaling im Abschnitt Autoscaling-Signale auf Signal hinzufügen.
Legen Sie als Signaltyp den Cloud Monitoring-Messwert fest.
Klicken Sie auf Konfigurieren. Der Bereich Ressource und Messwert wird geöffnet.
- Klicken Sie auf Messwert auswählen.
- Wählen Sie VM-Instanz > Speicher > Speicherauslastung (
compute.googleapis.com/instance/memory/percent_used
) aus. - Klicken Sie auf Anwenden.
- Wählen Sie VM-Instanz > Speicher > Speicherauslastung (
- Führen Sie im Abschnitt Filter folgende Schritte aus:
- Klicken Sie auf Filter hinzufügen.
- Wählen Sie in der Drop-down-Liste Label das Messwertlabel state aus.
- Geben Sie im Feld Wert den Wert used ein.
- Klicken Sie auf Fertig.
- Führen Sie im Abschnitt Messwertzieloptionen für das Autoscaling die folgenden Schritte aus:
- Achten Sie darauf, dass Nutzungsziel ausgewählt ist.
- Geben Sie einen Nutzungszielwert ein.
- Legen Sie für das Nutzungszieltyp Gauge fest.
- Klicken Sie nach der Konfiguration des Messwerts auf Auswählen.
- Klicken Sie auf Messwert auswählen.
Prüfen Sie die Messwertdetails und klicken Sie dann auf Fertig.
Klicken Sie abschließend auf Speichern.
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie in der Liste auf den Namen Ihrer MIG, um die Übersichtsseite der Instanzgruppe zu öffnen.
Klicken Sie auf der Übersichtsseite der Instanzgruppe auf Bearbeiten.
Wenn keine Autoscaling-Konfiguration vorhanden ist:
- Klicken Sie unter Autoscaling auf Autoscaling konfigurieren.
- Wählen Sie unter Autoscaling-Modus die Option Ein: Der Gruppe Instanzen hinzufügen und daraus entfernen, um das Autoscaling zu aktivieren.
Klicken Sie unter Autoscaling im Abschnitt Autoscaling-Signale auf Signal hinzufügen.
Legen Sie als Signaltyp den Cloud Monitoring-Messwert fest.
Klicken Sie auf Konfigurieren. Der Bereich Ressource und Messwert wird geöffnet.
- Klicken Sie auf Messwert auswählen.
- Wählen Sie VM-Instanz > Laufwerk > Laufwerkvorgänge (
agent.googleapis.com/disk/operation_count
) aus. - Klicken Sie auf Anwenden.
- Wählen Sie VM-Instanz > Laufwerk > Laufwerkvorgänge (
- Führen Sie im Abschnitt Messwertzieloptionen für das Autoscaling die folgenden Schritte aus:
- Achten Sie darauf, dass Nutzungsziel ausgewählt ist.
- Geben Sie einen Nutzungszielwert ein.
- Legen Sie einen Nutzungszieltyp fest.
- Klicken Sie nach der Konfiguration des Messwerts auf Auswählen.
- Klicken Sie auf Messwert auswählen.
Prüfen Sie die Messwertdetails und klicken Sie dann auf Fertig.
Klicken Sie abschließend auf Speichern.
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie in der Liste auf den Namen Ihrer MIG, um die Übersichtsseite der Instanzgruppe zu öffnen.
Klicken Sie auf der Übersichtsseite der Instanzgruppe auf Bearbeiten.
Wenn keine Autoscaling-Konfiguration vorhanden ist:
- Klicken Sie unter Autoscaling auf Autoscaling konfigurieren.
- Wählen Sie unter Autoscaling-Modus die Option Ein: Der Gruppe Instanzen hinzufügen und daraus entfernen, um das Autoscaling zu aktivieren.
Klicken Sie unter Autoscaling im Abschnitt Autoscaling-Signale auf Signal hinzufügen.
Legen Sie als Signaltyp den Cloud Monitoring-Messwert fest.
Klicken Sie auf Konfigurieren. Der Bereich Ressource und Messwert wird geöffnet.
- Klicken Sie auf Messwert auswählen
- Wählen Sie Instanzgruppe > Instanzgruppe > Instanzgruppengröße (
compute.googleapis.com/instance_group/size
) aus. - Klicken Sie auf Anwenden.
- Wählen Sie Instanzgruppe > Instanzgruppe > Instanzgruppengröße (
- Führen Sie im Abschnitt Filter folgende Schritte aus:
- Klicken Sie auf Filter hinzufügen.
- Wählen Sie im Drop-down-Menü Label das Ressourcenlabel instance_group_name aus.
- Geben Sie im Feld Wert den Namen der MIG (MIG_2) ein, anhand derer die MIG automatisch skaliert werden soll.
- Klicken Sie auf Fertig.
- Führen Sie im Abschnitt Messwertzieloptionen für das Autoscaling die folgenden Schritte aus:
- Wählen Sie Einzel-VM-Instanzzuweisung aus.
- Geben Sie im Feld "Einzel-VM-Instanzzuweisung"
4
ein, wenn Sie eine VM in Ihrer aktuellen MIG (MIG_1) für jeweils vier VMs in MIG_2 behalten möchten.
- Klicken Sie nach der Konfiguration des Messwerts auf Auswählen.
- Klicken Sie auf Messwert auswählen
Prüfen Sie die Messwertdetails und klicken Sie dann auf Fertig.
Klicken Sie abschließend auf Speichern.
Messwert-ID oder Messwert-URL: Der Messwertname in Form einer protokollfreien URL. URLs für integrierte Messwert-URLs finden Sie in der Messwertliste.
Beispielsweise ist die URL eines Pub/Sub-Messwerts, der die Anzahl der nicht bestätigten Nachrichten angibt,
pubsub.googleapis.com/subscription/num_undelivered_messages
.Typ der überwachten Ressource: Die Quelle des Messwerts. Sie finden den Typ der überwachten Ressource eines Messwerts in der Messwertliste.
Beispiel: Der Typ der überwachten Ressource des
pubsub.googleapis.com/subscription/num_undelivered_messages
-Messwerts istpubsub_subscription
. Weitere Informationen zu den einzelnen überwachten Ressourcentyp finden Sie unter Überwachte Ressourcentypen.Messwertfilter: Wenn Ihr Messergebnis mehrere Werte umfasst, kann das Autoscaling über einen Filter einen bestimmten Messwert in der Gruppe möglicher Messwerte identifizieren. Verwenden Sie über einen Messwert und überwachten Ressourcentyp definierte Label, um Werte zu filtern. Wenn Sie Ihre Messwerte mit verschiedenen Filtern untersuchen möchten, können Sie das im Metrics Explorer ausprobieren.
Der folgende Screenshot zeigt beispielsweise den Messwert
pubsub.googleapis.com/subscription/num_undelivered_messages
, der die Anzahl der nicht bestätigten Nachrichten in allen verfügbaren Abos angibt. Jede Linie im Diagramm steht für ein Abo.Ohne Filter verwendet das Autoscaling die Summe der Messwerte aus allen Abos. Wenn Sie Autoscaling anhand eines einzelnen Abos vornehmen möchten, wenden Sie einen Filter auf das Label
subscription_id
an, das fürpubsub_subscription
definiert ist. Der folgende Screenshot zeigt ein einzelnes Abo, nachdem der Filter angewendet wurde.- Der Wert des Filters muss in doppelten Anführungszeichen stehen.
- Sie müssen den direkten Gleichheitsvergleichsoperator verwenden (
=
). Sie müssen den Operator
AND
nutzen, um verschiedene Filterkriterien zusammenzuführen.Beispiel:
--stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"our-subscription\""
.Sie müssen direkte Werte verwenden. Im Filter können keine Platzhalter oder Funktionen verwendet werden.
Sie können beispielsweise nicht
resource.labels.zone = starts_with("us-")
verwenden.Sie können keine Ressourcenmetadatenlabels verwenden, die Metadaten zu einer überwachten Ressource speichern.
- Wenn für die Autoscaling-Konfiguration Daten von allen VMs in der Gruppe verwendet werden, richten Sie Instanzen in Ihrer MIG so ein, dass jede VM den benutzerdefinierten Messwert exportiert. Die exportierten Werte der einzelnen VMs müssen einer überwachten
gce_instance
-Ressource zugeordnet sein, die folgende Labels enthält:zone
mit dem Namen der Zone, in der sich die Instanz befindet.instance_id
mit dem Wert der eindeutigen numerischen ID, die der VM zugeordnet ist.
- Der Messwert muss mindestens alle 60 Sekunden Daten exportieren. Wenn Sie Daten häufiger als alle 60 Sekunden exportieren, kann das Autoscaling schneller auf Laständerungen reagieren. Wenn Sie Ihre Daten weniger häufig als alle 60 Sekunden exportieren, reagiert das Autoscaling möglicherweise nicht schnell genug auf Laständerungen.
- Der Messwert muss Daten vom Werttyp
INT64
oderDOUBLE
exportieren. - Autoscalings verwalten
- Mehr über die Faktoren des Autoscalings erfahren
- Mehr über das Skalieren von Gruppen mit mehreren Autoscaling-Signalen erfahren
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.
Beschränkungen
Die Skalierung anhand von Monitoring-Messwerten unterliegt den Beschränkungen für alle Autoscalings plus folgenden Einschränkungen:
Autoscaling anhand von Monitoring-Messwerten konfigurieren
Sie können Monitoring-Messwertwerte für das Autoscaling auf zwei verschiedene Arten verwenden:
Automatisch skalieren, um einen Messwert auf einem Zielwert zu halten
Wenn Sie einen Messwert auf einem Zielwert halten möchten, geben Sie ein Nutzungsziel an. Das Autoscaling erstellt VMs, wenn der Messwert über dem Ziel liegt, und löscht VMs, wenn der Messwert unter dem Ziel liegt.
Wenn Ihr Messergebnis mehrere Werte enthält, wenden Sie einen Filter an, um automatisch auf Basis eines bestimmten Werts aus dem Messergebnis zu skalieren. Weitere Informationen zu Messwertfiltern und anderen für Ihre Konfiguration relevanten Feldern finden Sie unter Messwertkonzepte überwachen.
Console
gcloud
Verwenden Sie den Befehl
set-autoscaling
, um das Autoscaling anhand von Monitoring-Messwerten zu konfigurieren.Verwenden Sie folgenden Befehl, um ein Autoscaling basierend auf einem Monitoring-Messwert mit einem Nutzungsziel durchzuführen.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
Wenn Ihr Messwert mehrere Werte enthält und Sie einen einzelnen Wert für das Autoscaling nutzen möchten, verwenden Sie das
--stackdriver-metric-filter
-Flag, wie im folgenden Befehl angegeben.gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE \ --stackdriver-metric-filter="METRIC_FILTER"
Dabei gilt:
Eine vollständige Liste der verfügbaren Befehle und Flags für die gcloud CLI finden Sie in der
gcloud
-Referenz.REST
Verwenden Sie die
autoscalers
-Ressource oder, bei regionalen MIGs, dieregionAutoscalers
-Ressource, um Autoscaling anhand von Monitoring-Messwerten für eine zonale MIG zu konfigurieren.Führen Sie folgenden Aufruf aus, um eine zonale MIG anhand eines Monitoring-Messwerts mit einem Nutzungsziel automatisch zu skalieren.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "utilizationTarget": TARGET_VALUE, "utilizationTargetType": TARGET_TYPE } ], } }
Wenn Ihr Messergebnis mehrere Werte enthält und Sie einen einzelnen Wert für das Autoscaling verwenden möchten, verwenden Sie den Parameter
filter
wie im folgenden API-Aufruf angegeben.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "utilizationTarget": TARGET_VALUE, "utilizationTargetType": TARGET_TYPE, "filter": "METRIC_FILTER" } ], } }
Dabei gilt:
Automatisch anhand der Aufgaben skalieren, die pro VM in einer MIG verfügbar sind
Wenn Sie ein Autoscaling basierend auf der Menge der Aufgaben vornehmen möchten, die pro VM in einer MIG verfügbar sind, geben Sie eine Einzelinstanz-Zuweisung an. Der Wert der Einzelinstanz-Zuweisung gibt an, wie viele Aufgaben pro VM verarbeitet werden sollen. Das Autoscaling teilt den Messwert durch den Wert der Einzelinstanz-Zuweisung, um zu berechnen, wie viele VMs benötigt werden.
Der Messwert
0
gibt an, dass für Ihre MIG keine abzuschließenden Aufgaben vorhanden sind. Wenn die Mindestzahl an Instanzen Ihrer MIG auf0
festgelegt ist und der Messwert auf0
sinkt, wird die MIG auf0
skaliert, bis sich der Messwert erhöht.Wenn Ihr Messergebnis mehrere Werte enthält, wenden Sie einen Filter an, um automatisch auf Basis eines bestimmten Werts aus dem Messergebnis zu skalieren. Weitere Informationen zu Messwertfiltern und anderen für Ihre Konfiguration relevanten Feldern finden Sie unter Messwertkonzepte überwachen.
Console
gcloud
Verwenden Sie den Befehl
set-autoscaling
, um das Autoscaling anhand von Monitoring-Messwerten zu konfigurieren.Mit dem
--stackdriver-metric-single-instance-assignment
-Flag geben Sie im Befehl an, wie viele Aufgaben jede einzelne VM in der Gruppe übernehmen soll.Mit folgendem Befehl wird ein Autoscaling erstellt, das auf der Aufgabenzuweisung pro VM basiert.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-filter="METRIC_FILTER" \ --stackdriver-metric-single-instance-assignment=INSTANCE_ASSIGNMENT
Dabei gilt:
REST
Verwenden Sie die
autoscalers
-Ressource oder, bei regionalen MIGs, dieregionAutoscalers
-Ressource, um Autoscaling anhand von Monitoring-Messwerten für eine zonale MIG zu konfigurieren.Mit dem Parameter
singleInstanceAssignment
geben Sie an, wie viele Aufgaben jede einzelne VM übernehmen soll.Beispiel: Mit dem folgenden Aufruf können Sie ein Autoscaling erstellen, das eine zonale MIG anhand der Instanzzuweisung skaliert.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "filter": "METRIC_FILTER", "singleInstanceAssignment": INSTANCE_ASSIGNMENT } ], } }
Dabei gilt:
Beispiele für das Autoscaling anhand von Messwerten
Dieser Abschnitt enthält einige Beispiele für Messwerte, die für das Autoscaling verwendet werden. Eine vollständige Liste der Messwerte finden Sie unter Google Cloud-Messwerte.
Autoscaling anhand eines benutzerdefinierten Messwerts
Es kann vorkommen, dass der Messwert, der ein relevantes Signal bereitstellt, nicht die Gesamtmenge der verfügbaren Arbeit oder eine andere Ressource darstellt, die für die Gruppe anwendbar ist, sondern stattdessen einen Durchschnitt, ein Perzentil oder eine andere statistische Eigenschaft. Im folgenden Beispiel wird davon ausgegangen, dass die Skalierung anhand der durchschnittlichen Verarbeitungslatenz der Gruppe erfolgt.
Ausgangssituation:
Sie haben festgestellt, dass Sie, wenn der Messwert über einen bestimmten Wert hinausgeht, der Gruppe weitere VMs hinzufügen müssen, um die Auslastung zu bewältigen. Wenn er hingegen sinkt, können Sie einige Ressourcen freigeben. Sie möchten, dass das Autoscaling VMs schrittweise in einer Menge hinzufügt oder entfernt, die proportional zur Abweichung des Messwerts vom Ziel ist. In diesem Beispiel wird davon ausgegangen, dass Ihr Zielwert
250 delta/sec
ist.Sie können das Autoscaling für die Gruppe mit dem Nutzungsziel
250
konfigurieren. Dies ist die Änderungsrate des Messwerts, die das Autoscaling aufrechtzuerhalten versucht:Console
gcloud
gcloud compute instance-groups managed set-autoscaling our-instance-group \ --zone=us-central1-a \ --max-num-replicas=50 \ --min-num-replicas=0 \ --update-stackdriver-metric=custom.googleapis.com/example_average_latency \ --stackdriver-metric-filter="metric.labels.group_name = \"our-instance-group\" AND resource.type = \"global\"" \ --stackdriver-metric-utilization-target=250 \ --stackdriver-metric-utilization-target-type=delta-per-second
REST
POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/autoscalers { "name": "our-instance-group-autoscaler", "target": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceGroupManagers/our-instance-group", "autoscalingPolicy": { "maxNumReplicas": 50, "minNumReplicas": 0, "customMetricUtilizations": [ { "filter": "metric.labels.group_name=\"our-instance-group\" AND resource.type = \"global\"", "utilizationTargetType": "delta-per-second", "utilizationTarget": 250.0, "metric": "custom.googleapis.com/example_average_latency" } ] } }
Automatisch auf Basis nicht bestätigter Nachrichten in Pub/Sub skalieren
Um das automatische Skalieren auf basis unbestätigter Nachrichten in einem Pub/Sub-Abo zu konfigurieren, nutzen Sie den
subscription/num_undelivered_messages
-Messert, der durchpubsub
bereitgestellt und durchsubscription ID
gefiltert wird.Der Messwert
subscription/num_undelivered_messages
exportiert die Gesamtzahl der Nachrichten im Abo, einschließlich Nachrichten, die derzeit verarbeitet werden, aber noch nicht bestätigt wurden. Verwenden Sie keinen Messwert, der die zu verarbeitenden Nachrichten nicht enthält. Er könnte auf 0 fallen, obwohl noch Arbeit zu erledigen ist, wodurch das Autoscaling veranlasst wird, herunter zu skalieren und die eigentliche Arbeit unterbrochen wird.Wenn Sie kein Abo haben, können Sie ein Pull-, Push- oder BigQuery-Abo erstellen, bevor Sie das Autoscaling konfigurieren.
Console
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=pubsub.googleapis.com/subscription/num_undelivered_messages \ --stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"" \ --stackdriver-metric-single-instance-assignment=NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM
REST
Konfigurieren Sie Autoscaling für eine zonale MIG mit der Ressource
autoscalers
oder verwenden Sie für eine regionale MIG die RessourceregionAutoscalers
.Mit dem folgenden Aufruf können Sie beispielsweise Autoscaling für eine zonale MIG erstellen.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "singleInstanceAssignment": NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM, "filter": "resource.type = \"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"", "metric": "pubsub.googleapis.com/subscription/num_undelivered_messages" } ] } }
Autoscaling auf basis des eingehenden Netzwerktraffics
Wenn Sie das automatische Skalieren auf Basis von auf VMs in Ihrem MIG eingehendem Netzwerk-Traffic konfigurieren wollen, nutzen Sie den
instance/network/received_bytes_count
-Messwert, der voncompute
bereitgestellt wird.Console
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=compute.googleapis.com/instance/network/received_bytes_count \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "utilizationTargetType": "TARGET_TYPE", "utilizationTarget": TARGET_VALUE, "metric": "compute.googleapis.com/instance/network/received_bytes_count" } ] } }
Autoscaling anhand der Arbeits-Speichernutzung
Geben Sie den
percent_used
-Messwert an, der durch die Ops-Agent-Messwerte des Arbeitsspeichers bereitgestellt wird, um das Autoscaling basierend auf dem Prozentsatz des verwendeten Speichers zu konfigurieren. Sie sollten den Messwert nachstate
filtern, um nur denused
-Speicherstatus zu verwenden. Wenn Sie den Filter nicht angeben, berechnet das Autoscaling die Summe der Speichernutzung durch alle Speicherstatus mit den Labelsbuffered
,cached
,free
,slab
undused
.Console
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=agent.googleapis.com/memory/percent_used \ --stackdriver-metric-filter="metric.labels.state = \"used\"" --stackdriver-metric-utilization-target-type=gauge \ --stackdriver-metric-utilization-target=TARGET_VALUE \
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "filter": "metric.labels.state=\"used\"", "utilizationTargetType": "GAUGE", "utilizationTarget": TARGET_VALUE, "metric": "agent.googleapis.com/memory/percent_used" } ] } }
Autoscaling anhand von Laufwerk-E/A
Verwenden Sie zum Konfigurieren des Autoscalings basierend auf der Gesamtzahl der Laufwerk-E/A-Vorgänge den
operation_count
-Messwert, der von den Metriken des Ops-Agents des Laufwerks bereitgestellt wird. Wenn Sie die Skalierung auf Lese- oder Schreibvorgängen basieren möchten, filtern Sie den Messwert mit demdirection
-Label. Für die Skalierung auf Basis von Laufwerkvorgänge in einem bestimmten Gerät verwenden Sie dasdevice
-Label im Messwertfilter.Console
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=agent.googleapis.com/disk/operation_count \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "utilizationTargetType": "TARGET_TYPE", "utilizationTarget": TARGET_VALUE, "metric": "agent.googleapis.com/disk/operation_count" } ] } }
Autoscaling anhand der Größe einer anderen MIG
Sie können eine MIG anhand der Größe einer anderen MIG im selben Projekt automatisch skalieren. Sie können beispielsweise eine mehrschichtige Anwendung mit einer Frontend-MIG verwenden, die auf Basis eines Load-Balancers automatisch skaliert wird, und eine Backend-MIG, die proportional zum Frontend skaliert wird. Mit einer einzelnen Instanzzuweisung definieren Sie, wie viele Backend-VMs für jede Frontend-VM benötigt werden. Wenn Sie eine Backend-VM für jeweils vier Frontend-VMs benötigen, legen Sie die Einzelinstanz-Zuweisung in der Backend-MIG auf 4 fest.
Verwenden Sie den
instance_group/size
-Messwert voncompute
, um eine MIG (MIG_1) anhand der Größe einer anderen MIG (MIG_2) automatisch zu skalieren.Console
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_1 \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=compute.googleapis.com/instance_group/size \ --stackdriver-metric-filter="resource.type = \"instance_group\" AND resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"" \ --stackdriver-metric-single-instance-assignment=4
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_1", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "singleInstanceAssignment": 4, "filter": "resource.type = \"instance_group\" and resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"", "metric": "compute.googleapis.com/instance_group/size" } ] } }
Monitoring-Messwertkonzepte
In diesem Abschnitt werden kurz die Monitoring-Messwertkonzepte beschrieben, die Sie bei der Konfiguration des Autoscalings auf Basis von Monitoring-Messwerten kennen müssen.
Anforderungen an die Messwertfilterung
Wenn Sie ein Messergebnis nutzen, das mehrere Werte enthält (über Labels kategorisiert), können Sie einen Filter anwenden, um basierend auf bestimmten Werten aus dem Messergebnis automatisch zu skalieren. Gibt der Filter mehrere Werte zurück, werden die Werte addiert. Um optimale Ergebnisse zu erzielen, sollten Sie einen Filter erstellen, der spezifisch genug ist, um einen einzelnen Wert zurückzugeben.
Die Autoscaling-Filterung für Messwerte ist mit der Monitoring-Filtersyntax kompatibel. Der Filter muss folgende Anforderungen erfüllen:
Eine vollständige Referenz der Messwertlabels und der Labels für überwachte Ressourcen, nach denen Sie filtern können, finden Sie in der Liste der Messwerte und der Liste der überwachten Ressourcen.
Anforderungen an benutzerdefinierte Messwerte
Um benutzerdefinierte Messwerte zu verwenden, müssen Sie zuerst einen benutzerdefinierten Messwert erstellen, der einem der überwachten Ressourcentypen zugeordnet ist.
Ein benutzerdefinierter Messwert, der für das Autoscaling verwendet wird, muss folgende Eigenschaften haben:
Informationen zum Erstellen eines benutzerdefinierten Messwerts finden Sie unter Benutzerdefinierte Messwerte verwenden.
Nächste Schritte
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-12-03 (UTC).
-