Worker-Pools verarbeiten Arbeitslasten, die keine Anfragen sind. In Anwendungsfällen, in denen die Arbeit auf mehrere Überarbeitungen aufgeteilt werden muss, z. B. bei der Bereitstellung einer neuen Überarbeitung, verwenden Worker-Pools die Instanzaufteilung.
In Cloud Run können Sie angeben, welche Versionen Instanzen erhalten, und die Prozentsätze für die Instanzzuweisung für jede Version festlegen. Mit diesem Feature können Sie ein Rollback zu einer vorherigen Überarbeitung durchführen, Instanzen auf mehrere Überarbeitungen aufteilen und Instanzen der neuesten Überarbeitung zuweisen. Auf dieser Seite wird beschrieben, wie Sie mit diesem Feature die Instanzzuweisung zu Ihren Cloud Run-Überarbeitungen verwalten.
Anpassungen der Instanzzuweisung erfolgen nicht sofort. Wenn Sie die Instanzzuweisung für Überarbeitungen ändern, werden alle verarbeiteten Anfragen fortgesetzt, bis sie abgeschlossen sind. InFlight-Anfragen werden nicht verworfen und Cloud Run leitet diese Anfragen während der Übergangsphase möglicherweise an eine neue oder eine vorherige Überarbeitung weiter.
Lebenszyklus von Instanzaufteilungen
Wenn Sie Instanzen auf mehrere Überarbeitungen aufteilen oder Instanzen einer vorherigen Überarbeitung zuweisen, wird dieses Instanzaufteilungsmuster für alle nachfolgenden Bereitstellungen verwendet. Wenn Sie nur die neueste Überarbeitung ohne Instanz aufteilung verwenden möchten, senden Sie alle Instanzen an die neueste Überarbeitung.
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 Google Cloud 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 Google Cloud Console oder die Google Cloud CLI, um ein Rollback zu einer vorherigen Überarbeitung durchzuführen:
Console
Rufen Sie in der Google Cloud Console die Seite „Cloud Run-Worker-Pools“ auf:
Suchen Sie den Worker-Pool in der Liste und klicken Sie darauf.
Klicken Sie auf den Tab Überarbeitungen , um eine Liste der aktuellen Überarbeitungen für diesen Worker-Pool anzuzeigen.
Klicken Sie auf Instanzaufteilungen verwalten , um das Formular zum Verwalten von Instanzen aufzurufen. Cloud Run listet die neueste bereitstellende Überarbeitung auf. Konfigurieren Sie im Formular die folgenden Details:
- Klicken Sie auf Überarbeitung hinzufügen und wählen Sie in der Drop-down-Liste eine vorherige Überarbeitung aus.
- Legen Sie den Instanzprozentsatz der vorherigen Überarbeitung auf 100 fest.
- Legen Sie den Prozentsatz der neuesten bereitstellenden Überarbeitung auf 0 fest.
- Klicken Sie auf Speichern.
gcloud
Geben Sie die Überarbeitungen an, zu denen ein Rollback durchgeführt werden soll, 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
Wenn Sie einen neuen Worker-Pool erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Worker-Pool aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
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: 100Ersetzen Sie Folgendes:
- WORKER_POOL: der Name des Worker-Pools.
- REGION: die Google Cloud 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.
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 replaceverwendet standardmäßig die Dateiworker-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 Google Cloud Projekts in.
- REGION: die Google Cloud 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 Google Cloud 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. Die Anzahl der manuellen Instanzen muss größer sein als die Anzahl der Instanzaufteilungen, die die Arbeitslast verarbeiten.
Console
Rufen Sie in der Google Cloud Console die Seite „Cloud Run-Worker-Pools“ auf:
Suchen Sie den Worker-Pool in der Liste und klicken Sie darauf.
Klicken Sie auf den Tab Überarbeitungen , um eine Liste der aktuellen Überarbeitungen für diesen Worker-Pool anzuzeigen.
Klicken Sie auf Instanzaufteilungen verwalten , um das Formular zum Verwalten von Instanzen aufzurufen. Cloud Run listet die neueste bereitstellende Überarbeitung auf. Konfigurieren Sie im Formular die folgenden Details:
Legen Sie den Prozentsatz der neuesten bereitstellenden Überarbeitung auf die erforderliche Aufteilung fest, z. B. reduzieren Sie ihn von 100%.
Klicken Sie auf Überarbeitung hinzufügen und wählen Sie in der Drop-down-Liste eine vorherige Überarbeitung aus und legen Sie die entsprechende prozentuale Aufteilung fest.
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.
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 Version 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: 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
Wenn Sie einen neuen Worker-Pool erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Worker-Pool aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
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: PERCENTAGE2Ersetzen Sie Folgendes:
- WORKER_POOL: der Name des Worker-Pools.
- REGION: die Google Cloud 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. Diese müssen zusammen 100 ergeben.
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 replaceverwendet standardmäßig die Dateiworker-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 Google Cloud Projekts in.
- REGION: die Google Cloud 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. Diese müssen zusammen 100 ergeben.
Instanzen der neuesten Überarbeitung zuweisen
Wenn Sie eine neue Überarbeitung bereitstellen, können Sie dieser Überarbeitung und allen zukünftigen Überarbeitungen 100% der Instanzen zuweisen. Damit wird jede bestehende Instanzaufteilung überschrieben.
gcloud
Führen Sie die folgenden Befehle aus, um der neuesten Version 100% der Instanzen zuzuweisen:
Verwenden Sie das Flag
--to-latest, um 100% der Instanzen an die neueste Überarbeitung weiterzuleiten und alle Instanzen automatisch jeder neuen Überarbeitung zuzuweisen, die Sie bereitstellen:gcloud run worker-pools update-instance-split WORKER_POOL --to-latestOptional können Sie das Flag
--to-revisionsmit dem SchlüsselwortLATESTverwenden, 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 Version zugewiesen werden:gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LATEST=PERCENTAGEErsetzen 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
Wenn Sie einen neuen Worker-Pool erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Worker-Pool aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
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: 100Ersetzen Sie Folgendes:
- WORKER_POOL: der Name des Worker-Pools.
- REGION: die Google Cloud 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
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 replaceverwendet standardmäßig die Dateiworker-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 Google Cloud 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
- Mehr dazu, wie Sie mit Cloud Deploy eine Continuous Delivery-Pipeline für die Bereitstellung in Cloud Run einrichten