Instanz-Splits und Rollbacks für Cloud Run-Worker-Pools

Mit Cloud Run-Worker-Pools können Sie Nicht-Anfrage-Arbeitslasten mithilfe von Instanz-Splitting auf mehrere Überarbeitungen verteilen. Sie können jeder Überarbeitung bestimmte Instanzprozentsätze zuweisen, zu einer vorherigen Überarbeitung zurückkehren oder beim Bereitstellen von Updates alle Instanzen zur neuesten Überarbeitung verschieben.

Lebenszyklus von Instanz-Splits

Wenn Sie Instanzen auf mehrere Überarbeitungen aufteilen oder Instanzen einer vorherigen Überarbeitung zuweisen, wird dieses Instanz-Split-Muster für alle nachfolgenden Bereitstellungen verwendet. Wenn Sie wieder nur die neueste Überarbeitung ohne Instanz Splitting verwenden möchten, senden Sie alle Instanzen zur neuesten Überarbeitung.

Anpassungen der Instanzzuweisung erfolgen nicht sofort. Wenn Sie die Instanzzuweisung für Überarbeitungen ändern, werden laufende Aufgaben abgeschlossen und Cloud Run verschiebt Arbeitslasten zwischen den vorherigen und neuen Überarbeitungen entsprechend dem aktualisierten Split.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die Cloud Run-Entwickler (roles/run.developer) IAM-Rolle für Ihren Cloud Run-Worker-Pool zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Cloud Run-Worker-Pools und -Überarbeitungen benötigen.

Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run-Worker-Pool mit Cloud de Confiance APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.

Rollback zu einer vorherigen Überarbeitung durchführen

Verwenden Sie die Cloud de Confiance Console oder die Google Cloud CLI, um zu einer vorherigen Überarbeitung zurückzukehren:

Console

  1. Rufen Sie in der Cloud de Confiance by S3NS Console die Seite „Cloud Run-Worker-Pools“ auf:

    Zu Cloud Run

  2. Suchen Sie den Worker-Pool in der Liste und klicken Sie darauf.

  3. Klicken Sie auf den Tab Überarbeitungen , um die Liste der aktuellen Überarbeitungen für diesen Worker-Pool aufzurufen.

  4. Klicken Sie auf Instanz-Splits verwalten , um das Formular zum Verwalten von Instanzen aufzurufen. Cloud Run listet die zuletzt bereitgestellte Überarbeitung auf. Konfigurieren Sie im Formular die folgenden Details:

    1. Klicken Sie auf Überarbeitung hinzufügen und wählen Sie in der Drop-down-Liste eine vorherige Überarbeitung aus.
    2. Legen Sie den Instanzprozentsatz für diese vorherige Überarbeitung auf 100 fest.
    3. Legen Sie den Prozentsatz für die zuletzt bereitgestellte Überarbeitung auf 0 fest.
    4. Klicken Sie auf Speichern.

gcloud

Geben Sie die Überarbeitungen an, zu denen Sie ein Rollback durchführen möchten, indem Sie den folgenden Befehl ausführen.

   gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=REVISION=100

Ersetzen Sie Folgendes:

  • WORKER_POOL: der Name des Worker-Pools.
  • REVISION: der Name der Überarbeitung, zu der Sie ein Rollback durchführen.

YAML

  1. Wenn Sie einen neuen Worker-Pool erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Worker-Pool aktualisieren, laden Sie die YAML-Konfiguration herunter:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. Das folgende Beispiel enthält die YAML-Konfiguration:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
      instanceSplits:
      - revisionName: REVISION
        percent: 100
    

    Ersetzen Sie Folgendes:

    • WORKER_POOL: der Name des Worker-Pools.
    • REGION: die Cloud de Confiance Region, z. B. us-central1.
    • IMAGE_URL: ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B. us-docker.pkg.dev/cloudrun/container/worker-pool:latest
    • REVISION: der Name der Überarbeitung, zu der Sie ein Rollback durchführen.
  3. Erstellen oder aktualisieren Sie den Worker-Pool mit dem folgenden Befehl:

    gcloud run worker-pools replace worker-pool.yaml

    Der Befehl gcloud run worker-pools replace verwendet standardmäßig die Datei worker-pool.yaml, falls vorhanden.

Terraform

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

import {
  id = "projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL"
  to = google_cloud_run_v2_worker_pool.default
}

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }

  instance_splits {
    type     = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
    revision = "REVISION"
    percent  = 100
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID Ihres Cloud de Confiance Projekts.
  • REGION: die Cloud de Confiance Region, z. B. us-central1.
  • WORKER_POOL: der Name des Worker-Pools.
  • IMAGE_URL: ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B. us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • REVISION: der Name der Überarbeitung, zu der Sie ein Rollback durchführen.

Instanzen auf mehrere Überarbeitungen aufteilen

Verwenden Sie die Cloud de Confiance Console oder die Google Cloud CLI, um Instanzen auf zwei oder mehr Überarbeitungen aufzuteilen:

Wenn Sie Instanzen auf mehrere Überarbeitungen aufteilen, muss der Gesamt prozentsatz für alle Überarbeitungen 100 % betragen und die Anzahl der manuellen Instanzen muss größer als die Anzahl der Instanz-Splits sein, die die Arbeitslast verarbeiten.

Console

  1. Rufen Sie in der Cloud de Confiance by S3NS Console die Seite „Cloud Run-Worker-Pools“ auf:

    Zu Cloud Run

  2. Suchen Sie den Worker-Pool in der Liste und klicken Sie darauf.

  3. Klicken Sie auf den Tab Überarbeitungen , um die Liste der aktuellen Überarbeitungen für diesen Worker-Pool aufzurufen.

  4. Klicken Sie auf Instanz-Splits verwalten , um das Formular zum Verwalten von Instanzen aufzurufen. Cloud Run listet die zuletzt bereitgestellte Überarbeitung auf. Konfigurieren Sie im Formular die folgenden Details:

    1. Legen Sie den Prozentsatz für die zuletzt bereitgestellte Überarbeitung auf den gewünschten Split fest, z. B. reduzieren Sie ihn von 100%.

    2. Klicken Sie auf Überarbeitung hinzufügen und wählen Sie in der Drop-down-Liste eine vorherige Überarbeitung aus. Legen Sie dann den entsprechenden Prozentsatz für den Split fest.

    3. Wenn Sie Instanzen mit zusätzlichen Überarbeitungen aufteilen möchten, klicken Sie auf Überarbeitung hinzufügen, und wählen Sie eine weitere Überarbeitung aus und legen Sie den Prozentsatz fest.

    4. Klicken Sie auf Speichern.

gcloud

Geben Sie die Überarbeitungen und den Prozentsatz der Instanzen an, indem Sie den folgenden Befehl ausführen. Weisen Sie jeder Überarbeitung Instanzen zu in einer durch Kommas getrennten Liste:

   gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LIST

Ersetzen Sie Folgendes:

  • WORKER_POOL: der Name des Worker-Pools.

  • LIST: eine durch Kommas getrennte Liste von Überarbeitungen und Prozentsätzen:

    REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEx.

    Beispiel: my-worker-pool-s5sxn=10,my-worker-pool-cp9kw=90.

YAML

  1. Wenn Sie einen neuen Worker-Pool erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Worker-Pool aktualisieren, laden Sie die YAML-Konfiguration herunter:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. Das folgende Beispiel enthält die YAML-Konfiguration:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      labels:
        cloud.googleapis.com/location: REGION
      annotations:
        run.googleapis.com/scalingMode: manual
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
      instanceSplits:
      - revisionName: REVISION1
        percent: PERCENTAGE1
      - revisionName: REVISION2
        percent: PERCENTAGE2
    

    Ersetzen Sie Folgendes:

    • WORKER_POOL: der Name des Worker-Pools.
    • REGION: die Cloud de Confiance Region, z. B. us-central1.
    • INSTANCE_COUNT: die Anzahl der Instanzen.
    • IMAGE_URL: ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B. us-docker.pkg.dev/cloudrun/container/worker-pool:latest
    • REVISION1 und REVISION2: die Namen der Überarbeitungen.
    • PERCENTAGE1 und PERCENTAGE2: der Prozentsatz der Instanzen, die jeder dieser Überarbeitungen zugewiesen werden sollen. Die Summe muss 100 ergeben.
  3. Erstellen oder aktualisieren Sie den Worker-Pool mit dem folgenden Befehl:

    gcloud run worker-pools replace worker-pool.yaml

    Der Befehl gcloud run worker-pools replace verwendet standardmäßig die Datei worker-pool.yaml, falls vorhanden.

Terraform

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

import {
  id = "projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL"
  to = google_cloud_run_v2_worker_pool.default
}

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }

  instance_splits {
    type     = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
    revision = "REVISION1"
    percent  = PERCENTAGE1
  }
  instance_splits {
    type     = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
    revision = "REVISION2"
    percent  = PERCENTAGE2
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID Ihres Cloud de Confiance Projekts.
  • REGION: die Cloud de Confiance Region, z. B. us-central1.
  • WORKER_POOL: der Name des Worker-Pools.
  • IMAGE_URL: ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B. us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • REVISION1 und REVISION2: die Namen der Überarbeitungen.
  • PERCENTAGE1 und PERCENTAGE2: der Prozentsatz der Instanzen, die jeder dieser Überarbeitungen zugewiesen werden sollen. Die Summe muss 100 ergeben.

Instanzen der neuesten Überarbeitung zuweisen

Wenn Sie eine neue Überarbeitung bereitstellen, können Sie dieser und allen zukünftigen Überarbeitungen 100% der Instanzen zuweisen und so alle bestehenden Instanz-Splits überschreiben.

gcloud

Führen Sie die folgenden Befehle aus, um 100% der Instanzen der neuesten Überarbeitung zuzuweisen:

  • Verwenden Sie das Flag --to-latest, um 100% der Instanzen an die neueste Überarbeitung zu senden und automatisch alle Instanzen jeder neuen Überarbeitung zuzuweisen, die Sie bereitstellen:

    gcloud run worker-pools update-instance-split WORKER_POOL --to-latest
    
  • Optional können Sie das Flag --to-revisions mit dem Keyword LATEST verwenden, um immer einen variablen Prozentsatz der Instanzen der neuesten Überarbeitung zuzuweisen, wenn Sie eine bereitstellen. Führen Sie den folgenden Befehl aus, um einen Prozentsatz von Instanzen festzulegen, die immer der neuesten Überarbeitung zugewiesen werden:

    gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LATEST=PERCENTAGE
    

    Ersetzen Sie Folgendes:

    • WORKER_POOL: der Name des Worker-Pools.
    • PERCENTAGE: der Prozentsatz der Instanzen, die der neuesten und zukünftigen neuesten Überarbeitungen zugewiesen werden sollen.

YAML

  1. Wenn Sie einen neuen Worker-Pool erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Worker-Pool aktualisieren, laden Sie die YAML-Konfiguration herunter:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. Das folgende Beispiel enthält die YAML-Konfiguration:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
      instanceSplits:
      - latestRevision: true
        percent: 100
    

    Ersetzen Sie Folgendes:

    • WORKER_POOL: der Name des Worker-Pools.
    • REGION: die Cloud de Confiance Region, z. B. us-central1.
    • IMAGE_URL: ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B. us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  3. Erstellen oder aktualisieren Sie den Worker-Pool mit dem folgenden Befehl:

    gcloud run worker-pools replace worker-pool.yaml

    Der Befehl gcloud run worker-pools replace verwendet standardmäßig die Datei worker-pool.yaml, falls vorhanden.

Terraform

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

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }

  instance_splits {
    type = "INSTANCE_SPLIT_ALLOCATION_TYPE_LATEST"
    percent  = 100
  }
}

Ersetzen Sie Folgendes:

  • WORKER_POOL: der Name des Worker-Pools.
  • REGION: die Cloud de Confiance Region, z. B. us-central1.
  • IMAGE_URL: ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B. us-docker.pkg.dev/cloudrun/container/worker-pool:latest

Nächste Schritte