Hochskalierung mit gesperrten und angehaltenen VMs beschleunigen


In diesem Dokument wird erläutert, wie der Standby-Pool gesperrter und angehaltener VM-Instanzen funktioniert und wie Sie den Standby-Pool verwenden können, um das Skalieren einer verwalteten Instanzgruppe (MIG) zu beschleunigen.

Hinweise

  • Lesen Sie die Einführungsseite zu gesperrten und beendeten VMs in einer MIG.
  • 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 bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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.

MIG API für das Autoscaling verwenden

Wir empfehlen, für das Autoscaling Ihrer MIG die Autoscaling-Funktion von Compute Engine zu verwenden. Wenn Sie aus irgendeinem Grund einen anderen Autoscaler verwenden möchten, verwenden Sie die Endpunkte der MIG API, um gesperrte und angehaltene VMs zu verwalten.

Zwischen gesperrten und angehaltenen Pools wählen

Ob Sie gesperrte oder angehaltene Pools verwenden, hängt von Ihrem jeweiligen Anwendungsfall ab. Für die beste Leistung sollten Sie mit verschiedenen Arten von Standby-Pools für Ihre Skalierungsszenarien experimentieren, um festzustellen, welche am besten zu Ihren Anforderungen passt. Bei unterschiedlichen Arbeitslasten kann die Bereitstellungszeit mit anderen Optionen kürzer sein. In einigen Fällen kann das Kopieren des Speicherzustands aus dem Speicher auf die VM mehr Zeit in Anspruch nehmen als das Neustarten der VM oder das Erstellen einer neuen VM.

Um den besten Ansatz zu finden, sollten Sie sich an den folgenden Richtlinien orientieren:

  • Verwenden Sie angehaltene VMs, wenn Ihre VMs eine zeitaufwendige Initialisierung des Arbeitsspeichers erfordern, da gesperrte VMs den Arbeitsspeicherstatus beibehalten. Ihre Anwendung muss ausgesetzt und fortgesetzt werden können. Das Speichern des Arbeitsspeicherstatus erfordert zusätzlichen Speicherplatz und kann zusätzliche Kosten verursachen.
  • Verwenden Sie beendete VMs, wenn sich die VM-Initialisierung hauptsächlich auf die Initialisierung der auf den nichtflüchtigen Laufwerken gespeicherten Daten konzentriert.

Standby-Richtlinie in einer MIG bearbeiten

In diesem Abschnitt wird beschrieben, wie Sie die anfängliche Verzögerung und den Standby-Pool-Modus auf Hochskalierungspool festlegen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie in der Spalte Name der Liste auf den Namen der Instanzgruppe, für die Sie die Standby-Richtlinie bearbeiten möchten.

  3. Klicken Sie auf Bearbeiten, um die verwaltete Instanzgruppe zu bearbeiten.

  4. Klicken Sie auf Erweiterte Konfiguration anzeigen.

  5. Wählen Sie im Bereich Standby-Pool unter Modus die Option Hochskalieren aus.

  6. Geben Sie im Feld Anfängliche Verzögerung die Anzahl der Sekunden ein, die die MIG warten soll, bevor eine VM ausgesetzt oder beendet wird. Die anfängliche Verzögerung gibt dem Initialisierungsskript Zeit, Ihre VM für ein schnelles Hochskalieren vorzubereiten.

  7. Klicken Sie auf Speichern.

gcloud

Verwenden Sie den Befehl beta instance-groups managed update und geben Sie den Betriebsmodus und die anfängliche Verzögerung an.

gcloud beta compute instance-groups managed update MIG_NAME \
  --standby-policy-mode=scale-out-pool \
  --standby-policy-initial-delay=DELAY \
  [--region=REGION | --zone=ZONE]

Ersetzen Sie Folgendes:

  • MIG_NAME: Name der MIG.
  • DELAY: Die Anzahl der Sekunden, die die MIG warten soll, bevor eine VM ausgesetzt oder angehalten wird. Die anfängliche Verzögerung gibt dem Initialisierungsskript Zeit, Ihre VM für ein schnelles Hochskalieren vorzubereiten.
  • REGION: bei einer regionalen MIG die Region, in der sich die MIG befindet.
  • ZONE: bei einer zonalen MIG die Zone, in der sich die MIG befindet.

API

Verwenden Sie die Methode instanceGroupManager.update und geben Sie den Betriebsmodus und die anfängliche Verzögerung im Anfragetext an. Verwenden Sie für regionale MIGs die Methode regionInstanceGroupManager.update.

PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"standbyPolicy": {
  "mode": "SCALE_OUT_POOL",
  "initialDelaySec": DELAY
}
// ...
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.
  • ZONE: Bei zonalen MIGs die Zone, in der sich die MIG befindet.
    • Ersetzen Sie bei einer regionalen MIG zones/ZONE durch regions/REGION und geben Sie die Region der MIG an.
  • MIG_NAME: Name der MIG.
  • DELAY: Die Anzahl der Sekunden, die die MIG warten soll, bevor eine VM ausgesetzt oder angehalten wird. Die anfängliche Verzögerung gibt dem Initialisierungsskript Zeit, Ihre VM für ein schnelles Hochskalieren vorzubereiten.

Größe des Standby-Pools in einer MIG anpassen

In diesem Abschnitt wird beschrieben, wie Sie die Größe von Pools gesperrter und beendeter VMs in einer MIG anpassen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie in der Spalte Name der Liste auf den Namen der Instanzgruppe, für die Sie die Größe des Standby-Pools bearbeiten möchten.

  3. Klicken Sie auf Bearbeiten, um die verwaltete Instanzgruppe zu bearbeiten.

  4. Klicken Sie auf Erweiterte Konfiguration anzeigen.

  5. Geben Sie im Abschnitt Standby-Pool die neuen Größen in den Feldern Gesperrte VMs und Beendete VMs ein.

  6. Klicken Sie auf Speichern.

gcloud

Verwenden Sie den Befehl instance-groups managed update (Beta) mit den Flags --suspended-size und --stopped-size.

gcloud beta compute instance-groups managed update MIG_NAME \
--suspended-size=SUSPENDED_SIZE \
--stopped-size=STOPPED_SIZE \
[--region=REGION | --zone=ZONE]

Ersetzen Sie Folgendes:

  • MIG_NAME: der Name der MIG, in der eine Instanz angehalten werden soll.
  • SUSPENDED_SIZE: die Anzahl der gesperrten VMs, die die MIG zu einem bestimmten Zeitpunkt beibehalten soll.
  • STOPPED_SIZE: die Anzahl der angehaltenen VMs, die die MIG zu einem bestimmten Zeitpunkt beibehalten soll.
  • REGION: bei einer regionalen MIG die Region, in der sich die MIG befindet.
  • ZONE: bei einer zonalen MIG die Zone, in der sich die MIG befindet.

API

Verwenden Sie die Methode instanceGroupManager.update und geben Sie im Anfragetext die Größe der Pools von gesperrten und beendeten VMs an. Verwenden Sie für regionale MIGs die Methode regionInstanceGroupManager.update.

PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"targetSuspendedSize": SUSPENDED_SIZE,
"targetStoppedSize": STOPPED_SIZE
// ...
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID für die Anfrage.
  • ZONE: bei einer zonalen MIG die Zone, in der sich die MIG befindet.
    • Ersetzen Sie bei einer regionalen MIG zones/ZONE durch regions/REGION und geben Sie die Region der MIG an.
  • MIG_NAME: der Name der MIG, in der eine Instanz beendet werden soll.
  • SUSPENDED_SIZE: die Anzahl der gesperrten VMs, die die MIG zu einem bestimmten Zeitpunkt beibehalten soll.
  • STOPPED_SIZE: die Anzahl der angehaltenen VMs, die die MIG zu einem bestimmten Zeitpunkt beibehalten soll.

Nächste Schritte