Autoscaling von Instanzgruppen

Verwaltete Instanzgruppen (MIGs) bieten Autoscaling-Funktionen, mit denen VM-Instanzen automatisch je nach Last zur MIG 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. Dazu definieren Sie eine Autoscaling-Richtlinie zur automatischen Skalierung anhand der gemessenen Last und der von Ihnen konfigurierten Optionen.

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

Spezifikationen

  • Autoscaling funktioniert nur mit verwalteten Instanzgruppen (MIGs). Nicht verwaltete Instanzgruppen werden nicht unterstützt.
  • Für das
      Autoscaling einer regionalen MIG gelten die folgenden Beschränkungen:
    • Sie müssen die Zielverteilungsform der Gruppe auf EVEN festlegen.
    • Für das Hoch- und Herunterskalieren müssen Sie die proaktive Umverteilung von Instanzen aktivieren. Wenn Sie den Autoscaling-Modus so einstellen, dass nur horizontal skaliert wird, müssen Sie die proaktive Umverteilung von Instanzen nicht aktivieren.
  • 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 VM-Instanzen mit bestimmten Namen zu aktivieren.
  • Sie können Autoscaling nicht verwenden, wenn Ihre MIG eine zustandsorientierte Konfiguration hat.
  • Verwenden Sie Compute Engine-Autoscaling nicht mit MIGs, 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 MIG-Namen nach dem Präfix gke. Beispiel: gke-test-1-3-default-pool-eadji9ah.

  • Das Autoscaling kann Entscheidungen zur Skalierung anhand von mehreren Messwerten treffen, jedoch nur ein Signal pro Messwerttyp verarbeiten. Eine Ausnahme sind Cloud Monitoring-Messwerte, für die bis zu fünf Signale auf Basis von Monitoring-Messwerten verarbeitet werden können. Das Autoscaling berechnet die empfohlene Anzahl virtueller Maschinen für jedes Signal und skaliert dann anhand des Signals, 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.

  • Wenn Sie eine regionale MIG automatisch skalieren, kann eine Instanz hinzugefügt und dann sofort aus einer der Zonen gelöscht werden. Dies geschieht, wenn die Auslastung in der Zone ein Hochskalieren auslöst, die Gesamtauslastung in der regionalen MIG jedoch keine zusätzliche Instanz erfordert oder die zusätzliche Instanz in einer anderen Zone erforderlich ist.

Vorbereitung

Das Autoscaling verwendet den Compute Engine-Dienst-Agent, um Instanzen zur Gruppe hinzuzufügen und daraus zu entfernen. Google Cloud erstellt dieses Dienstkonto und seine IAM-Richtlinienbindung automatisch an die Rolle "Compute Engine-Dienst-Agent", wenn die Compute Engine API aktiviert ist.

Sollte dieses Projekt in Ihrem Projekt fehlen, etwa weil Sie es entfernt haben, können Sie es manuell hinzufügen:

Console

  1. Rufen Sie in der Cloud Console die Seite IAM auf.

    IAM aufrufen

  2. Klicken Sie auf Add.

  3. Geben Sie service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com ein.

  4. Wählen Sie die Rolle "Compute Engine-Dienst-Agent" aus.

  5. Klicken Sie auf Speichern.

gcloud

gcloud projects add-iam-policy-binding PROJECT_ID \
   --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
   --role roles/compute.serviceAgent

Grundlagen

Autoscaling nutzt die folgenden grundlegenden Konzepte und Dienste.

Verwaltete Instanzgruppen

Autoscaling ist ein Feature verwalteter Instanzgruppen (MIGs). Eine verwaltete Instanzgruppe ist eine Sammlung von VM-Instanzen, die aus einer gemeinsamen Instanzvorlage erstellt wurden. Beim Autoscaling werden Instanzen gemäß der Autoscaling-Richtlinie der Gruppe zu einer verwalteten Instanzgruppe hinzugefügt oder gelöscht. Compute Engine enthält zwar verwaltete und nicht verwaltete Instanzgruppen, aber nur für verwaltete Instanzgruppen kann ein Autoscaler verwendet werden.

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

Informationen zum Erstellen einer verwalteten Instanzgruppe finden Sie unter Verwaltete Instanzgruppen erstellen.

Autoscaling-Richtlinie

Wenn Sie eine Autoscaling-Richtlinie für Ihre Gruppe definieren, geben Sie ein oder mehrere Signale an, die das Autoscaling zum Skalieren der Gruppe verwendet. Wenn Sie in einer Richtlinie mehrere Signale festlegen, berechnet das Autoscaling die empfohlene Anzahl von VMs für jedes Signal und setzt die empfohlene Größe Ihrer Gruppe auf die maximale Anzahl.

In den folgenden Abschnitten erhalten Sie einen Überblick über Signale auf Basis von Messwerten zur Zielauslastung und zu Signalen anhand von Zeitplänen.

Zielauslastungsmesswerte

Sie können ein Autoscaling auf der Grundlage eines oder mehrerer der folgenden Messwerte durchführen, die die Auslastung der Instanzgruppe widerspiegeln:

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

Das Autoscaling sammelt kontinuierlich Nutzungsinformationen basierend auf dem ausgewählten Auslastungsmesswert, vergleicht die Ist-Auslastung mit Ihrer gewünschten Soll-Auslastung und verwendet diese Informationen, um zu bestimmen, ob die Gruppe Instanzen entfernen (Herunterskalieren) oder Instanzen hinzufügen (Hochskalieren) 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.

Weitere Informationen zur Skalierung basierend auf den Zielauslastungsmesswerten finden Sie auf den folgenden Seiten:

Zeitpläne

Mit dem zeitbasierten Autoscaling können Sie die Kapazität für erwartete Lasten zuweisen. Sie können bis zu 128 Skalierungspläne pro Instanzgruppe haben. Geben Sie für jeden Skalierungsplan Folgendes an:

  • Kapazität: Mindestens erforderliche VM-Instanzen
  • Zeitplan: Startzeit, Dauer und Wiederholung (z. B. einmal, täglich, wöchentlich oder monatlich)

Jeder Skalierungsplan ist ab dem Startzeitpunkt und für die konfigurierte Dauer aktiv. Während dieser Zeit wird die Gruppe so skaliert, dass sie mindestens so viele Instanzen enthält, wie im Skalierungsplan festgelegt ist.

Weitere Informationen hierzu finden Sie unter Anhand von Zeitplänen skalieren.

Wartezeit

Die Wartezeit wird auch als Initialisierungsphase der Anwendung bezeichnet. Während eine Anwendung auf einer Instanz initialisiert wird, spiegeln die Nutzungsdaten der Instanz möglicherweise nicht die normalen Gegebenheiten wider. Das Autoscaling nutzt die Wartezeit für Skalierungsentscheidungen so:

  • Beim Herunterskalieren berücksichtigt das Autoscaling Nutzungsdaten von allen Instanzen, sogar von Instanzen, die sich noch in der Wartezeit befinden. Das Autoscaling empfiehlt, Instanzen zu entfernen, wenn die durchschnittliche Auslastung aller Instanzen unter der Zielauslastung liegt.
  • Bei einer horizontalen Skalierung ignoriert das Autoscaling Nutzungsdaten von Instanzen, die sich noch in der Wartezeit befinden.
  • Wenn Sie den Vorhersagemodus aktivieren, informiert die Wartezeit das vorausschauende Autoscaling, damit es vor der erwarteten Last noch weiter skaliert. Anwendungen werden dann bei Empfang der Last initialisiert. Wenn Sie beispielsweise die Wartezeit auf 300 Sekunden einstellen, erstellt das vorausschauende Autoscaling VMs 5 Minuten vor der prognostizierten Last.

Legen Sie eine Wartezeit fest, die angibt, wie lange die Initialisierung von Anwendungen auf der Instanz dauert. 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 beim Hochskalieren führt.

Stabilisierungszeitraum

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

Mithilfe des stabilisierten Zeitraums sorgt das Autoscaling dafür, dass die empfohlene Größe für Ihre verwaltete Instanzgruppe immer ausreicht, um die in den letzten 10 Minuten festgestellte Spitzenlast zu bewältigen.

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.

Autoscaling-Modus

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.

Vorausschauendes Autoscaling

Wenn Sie die automatische Skalierung für die Verfügbarkeit Ihrer MIG aktivieren, prognostiziert das Autoscaling die zukünftige Last anhand von Verlaufsdaten und skaliert die MIG vor der vorhergesagten Last herunter, sodass neue Instanzen bereitgestellt werden, wenn die Last ankommt.

Das vorausschauende Autoscaling funktioniert am besten, wenn Ihre Arbeitslast folgende Kriterien erfüllt:

  • Die Initialisierung der Anwendung dauert sehr lange. Dies ist beispielsweise der Fall, wenn Sie eine Wartezeit von mehr als 2 Minuten konfigurieren.
  • Ihre Arbeitslast variiert vorhersagbar mit täglichen oder wöchentlichen Zyklen.

Weitere Informationen finden Sie unter Vorausschauendes Autoscaling verwenden.

Steuerelemente für die Herunterskalierung

Wenn die Initialisierung Ihrer Arbeitslasten mehrere Minuten dauert (z. B. aufgrund langwieriger Installationsaufgaben), können Sie das Risiko von Antwortlatenz und Ausfällen aufgrund abrupter Skalierungsereignisse reduzieren. Konfigurieren Sie dazu die Steuerelemente für das Herunterskalieren. Insbesondere wenn Sie erwarten, dass bald nach dem Rückgang Lastspitzen auftreten. Sie können das Herunterskalieren begrenzen, um zu verhindern, dass das Autoscaling die Größe eines MIG um mehr VM-Instanzen verringert, als Ihre Arbeitslast tolerieren kann.

Sie müssen die Steuerelemente für das Herunterskalieren nicht konfigurieren, wenn Ihre Anwendung schnell genug initialisiert wird, um Lastspitzen beim Hochskalieren abzufangen.

Legen Sie in Ihrer Autoscaling-Richtlinie zum Konfigurieren von Steuerelementen für das Herunterskalieren die folgenden Eigenschaften fest.

  • Maximal zulässige Reduzierung. Die Anzahl der VM-Instanzen, die Ihre Arbeitslast innerhalb des angegebenen Nachlaufzeitfensters maximal verlieren darf (aus seiner Spitzengröße). Verwenden Sie diesen Parameter, um einzuschränken, in welchem Umfang Ihre Gruppe skaliert werden kann. Auf diese Weise kann weiterhin ein wahrscheinlicher Lastanstieg bedient werden, bis mehr Instanzen bereitstehen. Je kleiner Sie die maximal zulässige Reduzierung festlegen, desto länger dauert es, bis Ihre Gruppe herunterskaliert ist.

  • Nachlaufzeitfenster. Der Verlauf, in dem das Autoscaling die für Ihre Arbeitslast erforderliche Spitzengröße prüft. Autoscaling verkleinert die Größe nicht unter die maximal zulässige Reduzierung, die von der in diesem Zeitraum beobachteten Spitzengröße abgezogen wird. Mit diesem Parameter können Sie festlegen, wie lange das Autoscaling warten soll, bevor Instanzen gemäß der maximal zulässigen Reduzierung entfernt werden. Bei einem längeren Zeitraum berücksichtigt das Autoscaling mehr historische Spitzen, wodurch die Skalierung konservativer und stabiler wird.

Weitere Informationen finden Sie unter Steuerelemente für das Herunterskalieren konfigurieren und Autoscaling-Entscheidungen.

Die empfohlene Gruppengröße ist die vom Autoscaling empfohlene Anzahl von VMs, die die verwaltete Instanzgruppe auf Basis der in den letzten 10 Minuten beobachteten Spitzenlast verwalten sollte. Diese letzten 10 Minuten werden als Stabilisierungszeitraum bezeichnet. Die empfohlene Größe wird kontinuierlich neu berechnet. Wenn Sie eine Autoscaling-Richtlinie mit Steuerelementen für das Herunterskalieren festlegen, wird die empfohlene Größe durch Ihre Steuerelemente für das Herunterskalieren eingeschränkt.

Preise

Für die Konfiguration einer Autoscaling-Richtlinie fallen keine zusätzlichen Kosten an. Durch Autoscaling werden VM-Instanzen dynamisch hinzugefügt oder gelöscht. Sie zahlen also nur für die Ressourcen, die von der MIG verwendet werden. Sie können die Ressourcenkosten kontrollieren, indem Sie in der Autoscaling-Richtlinie die Mindest- und Höchstzahl von Instanzen konfigurieren. Informationen zu Preisen für Compute Engine finden Sie unter Preise.

Nächste Schritte

  1. Wenn Sie noch keine MIG haben, erstellen Sie eine verwaltete Instanzgruppe.
  2. Erstellen Sie ein Autoscaling, das basierend auf folgendes skaliert:

  3. Verwalten Sie Ihr Autoscaling, um beispielsweise Informationen darüber zu erhalten, um Steuerelemente für das Herunterskalieren zu konfigurieren oder um das Autoscaling vorübergehend einzuschränken.