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 VMs gelöscht, wenn der Bedarf an VMs sinkt (Herunterskalieren).

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. Öffnen Sie in der Google Cloud Console die Seite IAM.

    IAM aufrufen

  2. Klicken Sie auf Zugriff erlauben.

  3. Geben Sie im Feld Neue Hauptkonten 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.

Eine Autoscaling-Richtlinie muss immer mindestens ein Skalierungssignal haben. Wenn Sie Autoscaling in einer MIG aktivieren, fügt das Autoscaling standardmäßig ein CPU-Auslastungssignal hinzu. Sie können dieses Standardsignal bearbeiten oder andere Signale aus der Richtlinie entfernen oder hinzufügen.

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-Load-Balancing
  • 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.

Initialisierungsphase

Die Initialisierungszeit, früher als Wartezeit bezeichnet, ist die Zeit, die Anwendungen zur Initialisierung auf Ihren VM-Instanzen benötigen. Während eine Anwendung auf einer Instanz initialisiert wird, spiegeln die Nutzungsdaten der Instanz möglicherweise nicht die normalen Gegebenheiten wider. Das Autoscaling verwendet den Initialisierungszeitraum für Skalierungsentscheidungen so:

  • Beim Herunterskalieren berücksichtigt das Autoscaling Nutzungsdaten von allen Instanzen, sogar von Instanzen, die sich noch in der Initialisierungsphase 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 Initialisierungsphase befinden.
  • Wenn Sie den Vorhersagemodus aktivieren, informiert die Initialisierungsphase das vorausschauende Autoscaling, damit es vor der erwarteten Last noch weiter skaliert. Anwendungen werden dann bei Empfang der Last initialisiert. Wenn Sie beispielsweise die Initialisierungsphase auf 300 Sekunden einstellen, erstellt das vorausschauende Autoscaling VMs 5 Minuten vor der prognostizierten Last.

Standardmäßig beträgt der Initialisierungsphase 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 Initialisierungsphase 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 horizontalen Skalierung führt.

Stabilisierungszeitraum

Autoscaling-Signale wie die CPU-Auslastung sind nicht sehr stabil und können sich schnell ändern. Wenn die Last zu- und abnimmt, muss das Autoscaling das Signal stabilisieren, um ein kontinuierliches Löschen und Erstellen von VMs zu vermeiden. Das Autoscaling stabilisiert ein Signal, indem eine ausreichende VM-Kapazität bereitgestellt wird, um die während des Stabilisierungszeitraums beobachtete Spitzenlast zu bedienen.

Der Stabilisierungszeitraum beträgt 10 Minuten oder die von Ihnen festgelegte Initialisierungsphase, je nachdem, welcher Zeitraum länger ist. Der Stabilisierungszeitraum wird nur für Entscheidungen zur Herunterskalierung verwendet, wenn das Autoscaling VMs löschen muss.

Wenn die Last sinkt, löscht das Autoscaling VMs nicht sofort. Das Autoscaling behält die für die Dauer des Stabilisierungszeitraums erforderliche Kapazität bei und löscht VMs nur, wenn genügend Kapazität vorhanden ist, um die Spitzenlast zu erreichen. Dies kann bei der Herunterskalierung als Verzögerung wahrgenommen werden. Es handelt sich jedoch um eine integrierte Funktion des Autoscalings.

Wenn die Initialisierung Ihrer Anwendung auf einer neuen VM länger als 10 Minuten dauert, verwendet das Autoscaling die Initialisierungsphase anstelle der standardmäßigen 10-Minuten-Stabilisierung, um zu warten, bis die VM gelöscht werden kann. Dadurch wird bei der Autoscaling-Entscheidung zum Löschen der VM berücksichtigt, wie lange es dauert, die Bereitstellungskapazität zurückzugeben.

Wenn die Auslastung zunimmt, verwendet das Autoscaling keinen Stabilisierungszeitraum und erstellt sofort so viele VMs, wie es für den Bedarf erforderlich ist.

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 hierzu finden Sie unter Anhand von Vorhersagen skalieren.

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.

Beschränkungen

Was geschieht bei der automatischen Reparatur?

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 MIG, die Instanz neu zu erstellen. Während eine Instanz von der MIG neu erstellt wird, kann die Anzahl der ausgeführten Instanzen in der Gruppe geringer als die für die Gruppe angegebene Mindestanzahl an Instanzen (autoscalingPolicy.minNumReplicas) sein.

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. Autoscaling in einer regionalen MIG
  2. Wenn Sie noch keine MIG haben, erstellen Sie eine verwaltete Instanzgruppe.
  3. Erstellen Sie ein Autoscaling, das basierend auf folgendes skaliert:

  4. 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.