Autoscaling von Instanzgruppen

Verwaltete Instanzgruppen bieten Autoscaling-Funktionen, mit denen Instanzen automatisch je nach Last zur verwalteten Instanzgruppe hinzugefügt oder daraus entfernt werden. Mit Autoscaling können Ihre Anwendungen zunehmenden Traffic reibungslos bewältigen. In Zeiten geringeren Ressourcenbedarfs werden außerdem die Kosten gesenkt. Sie definieren die Autoscaling-Richtlinie und dann wird automatisch anhand der gemessenen Last skaliert.

Beim Autoscaling werden bei höherer Last mehr Instanzen zu Ihrer Instanzgruppe hinzugefügt (Hochskalierung) und Instanzen gelöscht, wenn die Anzahl der benötigten Instanzen abnimmt (Herunterskalierung).

Grundlagen

Autoscaling nutzt die folgenden grundlegenden Konzepte und Dienste.

Verwaltete Instanzgruppen

Autoscaling ist ein Feature verwalteter Instanzgruppen. Diese umfassen eine Reihe homogener Instanzen, die aus einer gemeinsamen Instanzvorlage erstellt wurden. Beim Autoscaling werden Instanzen zu einer verwalteten Instanzgruppe hinzugefügt oder daraus entfernt. Compute Engine hat zwar sowohl verwaltete als auch nicht verwaltete Instanzgruppen, aber nur bei Ersteren ist Autoscaling möglich.

Informationen zum Unterschied zwischen einer verwalteten Instanzgruppe und einer nicht verwalteten Instanzgruppe finden Sie unter Instanzgruppen.

Autoscaling-Richtlinie und Zielauslastung

Um Autoscaling einzusetzen, geben Sie die Autoscaling-Richtlinie und eine Zielauslastungsstufe an, die das Autoscaling verwendet, um zu bestimmen, wann die Gruppe skaliert werden soll. Die Skalierung kann abhängig von den folgenden Elementen erfolgen:

  • Durchschnittliche CPU-Auslastung
  • Bereitstellungskapazität des HTTP-Lastenausgleichs, die auf der Auslastung oder den Anfragen pro Sekunde basieren kann
  • Stackdriver Monitoring-Messwerte

Das Autoscaling erfasst fortlaufend Nutzungsinformationen entsprechend der Richtlinie, vergleicht die tatsächliche Auslastung mit der gewünschten Zielauslastung und bestimmt, ob die Gruppe vergrößert oder verkleinert werden muss.

Die Zielauslastungsstufe ist das Level, das Sie mit Ihren VM-Instanzen beibehalten möchten. Wenn Sie zum Beispiel basierend auf der CPU-Auslastung skalieren möchten, können Sie als Zielauslastungslevel den Wert 75 % festlegen. Das Autoscaling sorgt dann dafür, dass die CPU-Auslastung der Instanzgruppe immer ungefähr bei 75 % liegt. Das Auslastungslevel für den jeweiligen Messwert wird auf Grundlage der Autoscaling-Richtlinie interpretiert.

Eine kurze Zusammenfassung der einzelnen Richtlinien finden Sie unter Richtlinien. Detaillierte Informationen zu den einzelnen Richtlinien finden Sie hier:

Wartezeit

Während eine Instanz initialisiert wird, spiegeln Informationen zu ihrer Nutzung möglicherweise nicht die normalen Gegebenheiten wider. Die Nutzungsinformationen sind also möglicherweise nicht zuverlässig für Autoscaling-Entscheidungen und Sie möchten diese Daten unter Umständen ausklammern. Legen Sie eine Wartezeit fest, damit Ihre Instanzen die Initialisierung abschließen können, bevor das Autoscaling beginnt, Nutzungsinformationen von ihnen zu erfassen. Standardmäßig beträgt die Wartezeit 60 Sekunden.

Die tatsächlichen Initialisierungszeiten variieren aufgrund zahlreicher Faktoren. Wir empfehlen Ihnen, zu testen, wie lange Ihre Anwendung zur Initialisierung benötigt. Erstellen Sie dazu eine Instanz und bestimmen Sie die Dauer des Startvorgangs von dem Moment, in dem die Instanz in den Status RUNNING wechselt, bis zu dem Moment, in dem die Anwendung bereit ist.

Wenn Sie einen Wert für die Wartezeit festlegen, der erheblich länger ist als die Initialisierungszeit einer Instanz, ignoriert Ihr Autoscaling möglicherweise legitime Nutzungsdaten und unterschätzt möglicherweise die erforderliche Größe Ihrer Gruppe, was zu einer Verzögerung der vertikalen Skalierung führt.

Stabilisierungszeitraum

Zum Herunterskalieren wird beim Autoscaling die empfohlene Zielgröße der Gruppe anhand der Spitzenlast in den letzten zehn Minuten berechnet. Diese letzten zehn Minuten werden als Stabilisierungszeitraum bezeichnet.

Dieser Stabilisierungszeitraum von zehn Minuten kann beim Herunterskalieren als Verzögerung wahrgenommen werden. Tatsächlich handelt es sich jedoch um ein integriertes Feature des Autoscalings. Durch die Verzögerung wird sichergestellt, dass die kleinere Gruppengröße ausreicht, um die Spitzenlast der letzten 10 Minuten zu unterstützen.

Automatischer Skalierungsmodus

Wenn Sie Ihre Gruppe ohne Störungen durch Autoscaling-Vorgänge untersuchen oder konfigurieren möchten, können Sie die Autoscaling-Aktivitäten vorübergehend deaktivieren oder einschränken. Die Konfiguration des Autoscalings bleibt bestehen, solange es deaktiviert oder eingeschränkt ist. Alle Autoscaling-Aktivitäten werden fortgesetzt, wenn Sie es wieder aktivieren oder die Einschränkung aufheben.

Spezifikationen

  • Autoscaling funktioniert nur mit verwalteten Instanzgruppen. Nicht verwaltete Instanzgruppen werden nicht unterstützt.
  • Autoscaling funktioniert nicht mit verwalteten Instanzgruppen, wenn die proaktive Weiterverteilung von Instanzen deaktiviert ist.
  • Sie können keine Instanzen mit spezifischen Namen erstellen , während Autoscaling aktiviert ist. Sie haben aber die Möglichkeit, das Autoscaling erst nach der Erstellung von Instanzen mit bestimmten Namen zu aktivieren.
  • Verwenden Sie Compute Engine-Autoscaling nicht mit verwalteten Instanzgruppen, die zu Google Kubernetes Engine gehören. Verwenden Sie für Google Kubernetes Engine-Gruppen stattdessen Cluster-Autoscaling.

    Wenn Sie nicht sicher sind, ob Ihre Gruppe Teil eines GKE-Clusters ist, suchen Sie im Namen der verwalteten Instanzgruppe nach dem Präfix gke. Beispiel: gke-test-1-3-default-pool-eadji9ah

  • Das Autoscaling kann Entscheidungen zur Skalierung basierend auf mehreren Messwerten treffen, jedoch nur eine Richtlinie pro Messwerttyp verarbeiten. Eine Ausnahme sind Stackdriver Monitoring-Messwerte, für die bis zu fünf Richtlinien auf Basis von Monitoring-Messwerten verarbeitet werden können. Das Autoscaling berechnet die empfohlene Anzahl virtueller Maschinen für jede Richtlinie und skaliert dann anhand der Richtlinie, die die höchste Anzahl virtueller Maschinen in der Gruppe angibt.

  • Das Autoscaling arbeitet unabhängig von der automatischen Reparatur. Wenn Sie die automatische Reparatur für Ihre Gruppe konfigurieren und eine Instanz die Systemdiagnose nicht besteht, versucht die automatische Reparatur, die Instanz neu zu erstellen. Das erneute Erstellen einer Instanz kann dazu führen, dass die Anzahl der Instanzen in der Gruppe unter den von Ihnen angegebenen Autoscaling-Schwellenwert (minNumReplicas) fällt.

Vorbereitung

  1. Informationen zu verwalteten Instanzgruppen

    Da das Autoscaling ein Feature von verwalteten Instanzgruppen ist, sollten Sie vor der Verwendung von Autoscaling wissen, wie verwaltete Instanzgruppen funktionieren.

  2. Name oder URL einer verwalteten Instanzgruppe abrufen

    Für alle Autoscaling-Anfragen müssen Sie entweder den Namen einer verwalteten Instanzgruppe oder die URL einer verwalteten Instanzgruppe angeben. Im gcloud-Befehlszeilentool können Sie einen verwalteten Instanzgruppennamen verwenden. Die API erfordert hingegen eine vollständig qualifizierte URL.

    Zum Abrufen der URL einer vorhandenen verwalteten Instanzgruppe können Sie entweder den instance-groups managed list --uri-Befehl oder den instance-groups managed list [INSTANCE_GROUP] --uri-Befehl verwenden. Mit dem folgenden Befehl wird beispielsweise die URL einer verwalteten Instanzgruppe in der Zone us-central1-f bereitgestellt:

    gcloud compute instance-groups managed list example-group --uri --filter="zone:(us-central1-f)"
    

    Das gcloud-Tool gibt die URL der verwalteten Instanzgruppe zurück:

    https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-group
    

    Wenn Sie noch keine verwaltete Instanzgruppe haben, lesen Sie nach, wie Sie eine verwaltete Instanzgruppe erstellen.

Weitere Informationen

Als Nächstes können Sie das Autoscaling so einrichten, dass Instanzen anhand der CPU- oder Load-Balancing-Bereitstellungskapazität bzw. anhand eines Stackdriver Monitoring-Messwerts skaliert werden.

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation