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.

Hinweis

  • 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 Cloud de Confiance by S3NS Dienste und APIs überprüft. Wenn Sie Code oder Beispiele aus einer lokalen Entwicklungsumgebung ausführen möchten, können Sie sich bei Compute Engine authentifizieren, indem Sie eine der folgenden Optionen auswählen:

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Cloud de Confiance Console auf Cloud de Confiance by S3NS Dienste und APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung, initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:

      gcloud init
  • Legen Sie eine Standardregion und -zone fest.
  • Terraform

    Wenn Sie die Terraform-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

    1. Installieren Sie die Google Cloud CLI.

    2. Konfigurieren Sie die gcloud CLI für die Verwendung Ihrer föderierten Identität.

      Weitere Informationen finden Sie unter Mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    3. Erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:

      gcloud auth application-default login

      Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.

    Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

    REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an.

    Weitere Informationen finden Sie in der Cloud de Confiance Authentifizierungsdokumentation unter Für die Verwendung von REST authentifizieren.

MIG API für 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

Die Wahl zwischen gesperrten und angehaltenen Pools hängt von Ihrem spezifischen Anwendungsfall ab. Um die beste Leistung zu erzielen, sollten Sie verschiedene Standby-Pooltypen für Ihre Szenarien zur horizontalen Skalierung testen, um herauszufinden, welcher Ihren Anforderungen am besten entspricht. 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.

Die folgenden Richtlinien helfen Ihnen dabei, den besten Ansatz zu finden:

  • 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 Beibehalten des Arbeitsspeicherstatus erfordert zusätzlichen Speicher und kann zusätzliche Kosten verursachen.
  • Verwenden Sie angehaltene VMs, wenn sich die VM-Initialisierung hauptsächlich auf die Initialisierung von Daten konzentriert, die auf nichtflüchtigen Speichern gespeichert sind.

Standby-Richtlinie in einer MIG bearbeiten

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

Console

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

    Zu den Instanzgruppen

  2. Klicken Sie auf den Namen der Instanzgruppe, die Sie bearbeiten möchten.

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

  4. Klicken Sie auf Erweiterte Optionen , um den Bereich zu maximieren.

  5. Wählen Sie im Bereich Standby-Pool 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 instance-groups managed update Befehl und geben Sie den Betriebsmodus und die anfängliche Verzögerung an.

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

Terraform

Im folgenden Beispiel wird eine zonale MIG mit einer Standby-Richtlinie erstellt. Verwenden Sie den Block standby_policy, um eine anfängliche Verzögerung festzulegen und den Modus auf SCALE_OUT_POOL zu setzen.

Im Beispiel wird die google_compute_instance_group_manager Ressource verwendet. Verwenden Sie für eine regionale MIG die google_compute_region_instance_group_manager Ressource.

resource "google_compute_instance_group_manager" "default" {
  name               = "standby-mig"
  base_instance_name = "test"
  target_size        = 3
  zone               = "us-central1-f"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  standby_policy {
    initial_delay_sec = 50
    mode              = "SCALE_OUT_POOL"
  }
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

REST

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

PATCH https://compute.s3nsapis.fr/compute/v1/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 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 von 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 horizontales Skalieren vorzubereiten.

Größe des Standby-Pools in einer verwalteten Instanzgruppe anpassen

In diesem Abschnitt wird beschrieben, wie Sie die Größe der Standby-Pools ausgesetzter und angehaltener VMs in einer verwalteten Instanzgruppe anpassen.

Console

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

    Zu den Instanzgruppen

  2. Klicken Sie auf den Namen der Instanzgruppe, die Sie bearbeiten möchten.

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

  4. Klicken Sie auf Erweiterte Optionen , um den Bereich zu maximieren.

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

  6. Klicken Sie auf Speichern.

gcloud

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

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

Terraform

Im folgenden Beispiel wird eine zonale MIG mit Zielgrößen für gesperrte und angehaltene VMs erstellt. Verwenden Sie die Argumente target_suspended_size und target_stopped_size, um die Zielgrößen festzulegen.

Im Beispiel wird die google_compute_instance_group_manager Ressource verwendet. Verwenden Sie für eine regionale MIG die google_compute_region_instance_group_manager Ressource.

resource "google_compute_instance_group_manager" "default" {
  name                  = "standby-mig"
  base_instance_name    = "test"
  target_size           = 1
  target_suspended_size = 1
  target_stopped_size   = 2
  zone                  = "us-central1-f"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  standby_policy {
    initial_delay_sec = 50
    mode              = "SCALE_OUT_POOL"
  }
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

REST

Verwenden Sie die instanceGroupManager.patch Methode 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.patch.

PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.
  • 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