Manuelle Skalierung für Worker-Pools

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:

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

  1. Rufen Sie in der Google Cloud Console Cloud Run auf:

    Zu Cloud Run

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

  3. Suchen Sie das Formular Skalierung (für einen neuen Worker-Pool) oder das Formular Skalierung bearbeiten für einen vorhandenen Worker-Pool.

    Image

  4. Geben Sie im Feld Anzahl der Instanzen die Anzahl der Containerinstanzen für den Dienst an.

  5. Schließen Sie die Spezifikation ab.

  6. 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 0 an, 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

  1. 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
  2. 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 0 an, um den Worker-Pool zu deaktivieren.
  3. 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 0 an, 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 gcloud angemeldet sind, können Sie ein Zugriffstoken mit gcloud auth print-access-token abrufen. 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

  1. Rufen Sie in der Google Cloud Console Cloud Run auf:

    Zu Cloud Run

  2. Klicken Sie auf Worker-Pools , um die Liste der bereitgestellten Worker-Pools aufzurufen.

  3. Klicken Sie auf den Worker-Pool, den Sie untersuchen möchten, um das Detailfeld aufzurufen.

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