Auf dieser Seite wird beschrieben, wie Sie Ihren Worker-Pool manuell skalieren.
Übersicht
Mit der manuellen Skalierung können Sie eine bestimmte Anzahl von Instanzen festlegen, ohne dass eine erneute Bereitstellung erforderlich ist. So haben Sie die Möglichkeit, Ihre eigene Skalierungslogik mit einem externen System zu schreiben. Ein Beispiel dafür finden Sie unter Kafka Autoscaler.
Überlegungen zur Abrechnung bei Verwendung der manuellen Skalierung
Wenn Sie die manuelle Skalierung verwenden, werden alle von Ihnen angeforderten Instanzen als aktive Instanzen in Rechnung gestellt, auch wenn sie sich im Leerlauf befinden. Vollständige Abrechnungsdetails finden Sie auf der Seite Preise.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Bereitstellen von Cloud Run-Worker-Pools benötigen:
-
Rolle „Cloud Run-Entwickler“ (
roles/run.developer) im Cloud Run-Dienst -
Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser) für die Dienstidentität -
Rolle „Artifact Registry-Leser“ (
roles/artifactregistry.reader) für das Artifact Registry-Repository des bereitgestellten Container-Images (falls zutreffend)
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.
Skalierung konfigurieren
Wenn Sie den Skalierungsmodus oder die Anzahl der manuellen Instanzen ändern, wird keine neue Überarbeitung erstellt.
Verwenden Sie die Google Cloud Console, die Google Cloud CLI, YAML, Terraform oder die REST API, um den Skalierungsmodus zu konfigurieren:
Console
Rufen Sie in der Google Cloud Console Cloud Run auf:
Wenn Sie einen neuen Worker-Pool konfigurieren, wählen Sie im Menü Worker-Pools aus und klicken Sie auf Container bereitstellen. Wenn Sie einen vorhandenen Worker-Pool konfigurieren, klicken Sie auf den Worker-Pool, um das Detailfeld aufzurufen, und dann oben rechts im Detailfeld auf das Stiftsymbol neben Skalierung.
Suchen Sie das Formular Skalierung (für einen neuen Worker-Pool) oder das Formular Skalierung bearbeiten für einen vorhandenen Worker-Pool.
Geben Sie im Feld Anzahl der Instanzen die Anzahl der Containerinstanzen für den Dienst an.
Schließen Sie die Spezifikation ab.
Klicken Sie bei einem neuen Worker-Pool auf Erstellen oder bei einem vorhandenen Worker-Pool auf Speichern.
gcloud
Verwenden Sie den Bereitstellungs befehl, um die Skalierung für einen neuen Worker-Pool anzugeben:
gcloud beta run worker-pools deploy WORKER_POOL \ --instances=INSTANCE_COUNT \ --image IMAGE_URL
Ersetzen Sie Folgendes:
- WORKER_POOL: der Name Ihres Worker-Pools.
- INSTANCE_COUNT: die Anzahl der Instanzen für den Worker-Pool.
Dadurch wird für den Worker-Pool die manuelle Skalierung festgelegt. Geben Sie den Wert
0an, um den Worker-Pool zu deaktivieren. - 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.
Geben Sie die Skalierung für einen vorhandenen Worker-Pool mit dem folgenden Aktualisierungsbefehl an:
gcloud beta run worker-pools update WORKER_POOL \ --instances=INSTANCE_COUNT
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 beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml
Das folgende Beispiel enthält die YAML-Konfiguration:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL annotations: run.googleapis.com/launch-stage: BETA run.googleapis.com/manualInstanceCount: `INSTANCE_COUNT`
Ersetzen Sie Folgendes:
- WORKER_POOL: der Name Ihres Cloud Run-Worker-Pools.
- INSTANCE_COUNT: die Anzahl der Instanzen, die Sie für den Worker-Pool manuell
skalieren. Geben Sie den Wert
0an, um den Worker-Pool zu deaktivieren.
Erstellen oder aktualisieren Sie den Worker-Pool mit dem folgenden Befehl:
gcloud beta run worker-pools replace workerpool.yaml
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"
launch_stage = "BETA"
template {
containers {
image = "IMAGE_URL"
}
}
scaling {
scaling_mode = "MANUAL"
manual_instance_count = "INSTANCE_COUNT"
}
}
Ersetzen Sie Folgendes:
- WORKER_POOL: der Name des Worker-Pools.
- REGION: die Google Cloud Region, z. B.
europe-west1. - 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. - INSTANCE_COUNT: die Anzahl der Instanzen für den Worker-Pool.
Dadurch wird für den Worker-Pool die manuelle Skalierung festgelegt. Geben Sie den Wert
0an, um den Worker-Pool zu deaktivieren.
REST API
Wenn Sie die Anzahl der Instanzen für einen bestimmten Worker-Pool aktualisieren möchten, senden Sie eine PATCH
HTTP-Anfrage an den Endpunkt der Cloud Run Admin API
workerPools.
Beispiel mit curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{"scaling":{"manualInstanceCount":INSTANCE_COUNT }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL?update_mask=scaling.manualInstanceCount
Ersetzen Sie Folgendes:
- ACCESS_TOKEN: ein gültiges Zugriffstoken für ein Konto, das
die IAM-Berechtigungen zum Aktualisieren eines Worker-Pools hat.
Wenn Sie beispielsweise in
gcloudangemeldet sind, können Sie ein Zugriffstoken mitgcloud auth print-access-tokenabrufen. Innerhalb einer Cloud Run-Containerinstanz können Sie ein Zugriffstoken über den Metadatenserver der Containerinstanz abrufen. - INSTANCE_COUNT: die Anzahl der Instanzen für den Worker-Pool.
- PROJECT_ID: die Google Cloud Projekt-ID.
- REGION: die Google Cloud Region, in der der Worker-Pool bereitgestellt wird.
- WORKER_POOL: der Name des Worker-Pools.
Skalierungskonfiguration für einen Worker-Pool ansehen
Rufen Sie in der Google Cloud Console Cloud Run auf:
Klicken Sie auf Worker-Pools , um die Liste der bereitgestellten Worker-Pools aufzurufen.
Klicken Sie auf den Worker-Pool, den Sie untersuchen möchten, um das Detailfeld aufzurufen.
Die aktuelle Skalierungseinstellung wird über der Liste der Überarbeitungen des Worker-Pools angezeigt: Skalierung: Manuell (Instanzen: ).
Worker-Pool deaktivieren
Verwenden Sie den folgenden Befehl, um die Skalierung auf null zu setzen und einen Worker-Pool zu deaktivieren:
gcloud beta run worker-pools update WORKER_POOL --instances=0
Ersetzen Sie WORKER_POOL durch den Namen Ihres Worker-Pools.