Scalabilità manuale per i pool di worker

Questa pagina mostra come scalare manualmente il pool di worker.

Panoramica

La scalabilità manuale ti consente di impostare un numero specifico di istanze senza richiedere un nuovo deployment. In questo modo, hai la possibilità di scrivere la tua logica di scalabilità utilizzando un sistema esterno. Per un esempio, consulta Kafka Autoscaler.

Considerazioni sulla fatturazione quando si utilizza la scalabilità manuale

Quando utilizzi la scalabilità manuale, tutte le istanze che hai richiesto vengono fatturate come istanze attive, anche se sono inattive. Per i dettagli completi sulla fatturazione, consulta la pagina dei prezzi.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire il deployment dei pool di worker Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo pool di worker Cloud Run interagisce con Google Cloud API, come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.

Configura la scalabilità

La modifica della modalità di scalabilità o del numero di istanze manuali non crea una nuova revisione.

Per configurare la modalità di scalabilità, utilizza la Google Cloud console, Google Cloud CLI, YAML, Terraform o l'API REST:

Console

  1. Nella Google Cloud console, vai a Cloud Run:

    Vai a Cloud Run

  2. Se stai configurando un nuovo pool di worker, seleziona Pool di worker dal menu e fai clic su Esegui il deployment del container. Se stai configurando un pool di worker esistente, fai clic sul pool di worker per visualizzare il riquadro dei dettagli, quindi fai clic sull'icona a forma di matita accanto a Scalabilità in alto a destra nel riquadro dei dettagli.

  3. Individua il modulo Scalabilità (per un nuovo pool di worker) o il modulo Modifica scalabilità per un pool di worker esistente.

    immagine

  4. Nel campo con l'etichetta Numero di istanze, specifica il numero di istanze di container per il servizio.

  5. Completa la specifica.

  6. Fai clic su Crea per un nuovo pool di worker o su Salva per un pool di worker esistente.

gcloud

Per specificare la scalabilità per un nuovo pool di worker, utilizza il deploy comando:

gcloud run worker-pools deploy WORKER_POOL \
    --instances=INSTANCE_COUNT \
    --image IMAGE_URL

Sostituisci quanto segue:

  • WORKER_POOL: il nome del pool di worker.
  • INSTANCE_COUNT: il numero di istanze per il pool di worker. Imposta il pool di worker sulla scalabilità manuale. Specifica un valore di 0 per disabilitare il pool di worker.
  • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.

Specifica la scalabilità per un pool di worker esistente utilizzando il seguente update comando:

gcloud run worker-pools update WORKER_POOL \
   --instances=INSTANCE_COUNT

YAML

  1. Se stai creando un nuovo pool di worker, salta questo passaggio. Se stai aggiornando un pool di worker esistente, scarica la relativa configurazione YAML:

    gcloud run worker-pools describe WORKER_POOL --format export > workerpool.yaml
  2. L'esempio seguente contiene la configurazione YAML:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      annotations:
        run.googleapis.com/manualInstanceCount: `INSTANCE_COUNT`

    Sostituisci quanto segue:

    • WORKER_POOL: il nome del pool di worker Cloud Run.
    • INSTANCE_COUNT: il numero di istanze che stai scalando manualmente per il pool di worker. Specifica un valore di 0 per disabilitare il pool di worker.
  3. Crea o aggiorna il pool di worker utilizzando il seguente comando:

    gcloud run worker-pools replace workerpool.yaml

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

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

  template {
    containers {
      image = "IMAGE_URL"
    }
  }
  scaling {
    scaling_mode = "MANUAL"
    manual_instance_count = "INSTANCE_COUNT"
  }
}

Sostituisci quanto segue:

  • WORKER_POOL: il nome del pool di worker.
  • REGION: la Google Cloud regione, ad esempio europe-west1.
  • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  • INSTANCE_COUNT: il numero di istanze per il pool di worker. Imposta il pool di worker sulla scalabilità manuale. Specifica un valore di 0 per disabilitare il pool di worker.

API REST

Per aggiornare il numero di istanze per un determinato pool di worker, invia una richiesta PATCH HTTP all'API Cloud Run Admin workerPools endpoint.

Ad esempio, utilizzando 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

Sostituisci quanto segue:

  • ACCESS_TOKEN: un token di accesso valido per un account che dispone delle autorizzazioni IAM per aggiornare un pool di worker. Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando gcloud auth print-access-token. Da un'istanza container Cloud Run, puoi recuperare un token di accesso utilizzando il server dei metadati dell'istanza container.
  • INSTANCE_COUNT: il numero di istanze per il pool di worker.
  • PROJECT_ID: l' Google Cloud ID progetto.
  • REGION: la Google Cloud regione in cui è stato eseguito il deployment del pool di worker.
  • WORKER_POOL: il nome del pool di worker.

Visualizza la configurazione della scalabilità per un pool di worker

  1. Nella Google Cloud console, vai a Cloud Run:

    Vai a Cloud Run

  2. Fai clic su Pool di worker per visualizzare l'elenco dei pool di worker di cui è stato eseguito il deployment.

  3. Fai clic sul pool di worker che vuoi esaminare per visualizzare il riquadro dei dettagli.

  4. L'impostazione di scalabilità corrente viene visualizzata sopra l'elenco delle revisioni dei pool di worker: Scalabilità: manuale (istanze: ).

Disabilita un pool di worker

Per disabilitare un pool di worker, utilizza il seguente comando per impostare la scalabilità su zero:

gcloud run worker-pools update WORKER_POOL --instances=0

Sostituisci WORKER_POOL con il nome del pool di worker.