Configura i container per i pool di worker

Questa pagina descrive come configurare il comando dell'entry point e gli argomenti per un pool di worker Cloud Run.

Quando Cloud Run avvia un container, esegue il comando dell'entry point predefinito e gli argomenti del comando predefiniti dell'immagine. Se vuoi eseguire l'override dell'entry point e degli argomenti del comando predefiniti dell'immagine, puoi utilizzare i campi command e args nella configurazione del container. Il campo command specifica il comando effettivo eseguito dal container. Il campo args specifica gli argomenti passati a questo comando.

Tieni presente che puoi avere un massimo di 1000 argomenti per container per ogni pool di worker.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment di 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 l'entry point e gli argomenti

Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che tu non apporti aggiornamenti espliciti per modificarla.

Il comando e gli argomenti del container specificati sostituiscono i valori predefiniti ENTRYPOINT e CMD dell'immagine.

Puoi impostare il comando dell'entry point e gli argomenti per un pool di worker Cloud Run utilizzando la Google Cloud console, Google Cloud CLI, YAML o Terraform:

Console

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

    Vai a Cloud Run

  2. Seleziona Pool di worker dal menu e fai clic su Esegui il deployment del container per configurare un nuovo pool di worker. Se stai configurando un pool di worker esistente, fai clic sul pool di worker, quindi su Modifica ed esegui il deployment di una nuova revisione.

  3. Se stai configurando un nuovo pool di worker, compila la pagina iniziale del pool di worker, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione dei pool di worker.

  4. Fai clic sulla scheda Container.

    immagine

    • Specifica il comando che vuoi che il container esegua se non vuoi utilizzare il comando dell'entry point definito nell'immagine container. (Facoltativo) Specifica gli argomenti del comando dell'entry point.
  5. Fai clic su Crea o Esegui il deployment.

gcloud

Per aggiornare il comando di avvio e gli argomenti per un servizio esistente:

gcloud beta run worker-pools update WORKER_POOL --command COMMAND --args ARG1,ARG-N

Sostituisci quanto segue:

  • WORKER_POOL: il nome del pool di worker.
  • COMMAND: il comando con cui viene avviato il container, se non utilizzi il comando predefinito.
  • ARG1: l'argomento che stai inviando al comando del container. Utilizza un elenco delimitato da virgole per più di un argomento.

Per specificare l'entry point e gli argomenti durante il deployment di un pool di worker nuovo o esistente:

gcloud beta run worker-pools deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

Sostituisci IMAGE_URL con un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.

Se vuoi ripristinare i valori predefiniti del container per i comandi e gli argomenti dell'entry point, fornisci stringhe vuote come segue:

gcloud beta run worker-pools deploy --image IMAGE_URL --command "" --args ""

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 beta 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/launch-stage: BETA
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER_NAME
            image: IMAGE_URL
            command:
            - COMMAND
            args:
            - ARG1
            - ARG-N

    Sostituisci quanto segue:

    • WORKER_POOL: il nome del tuo pool di worker Cloud Run.
    • CONTAINER_NAME: il nome del container.
    • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest
    • COMMAND: il comando con cui viene avviato il container, se non utilizzi il comando predefinito.
    • ARG1: l'argomento che stai inviando al comando del container. Se utilizzi più argomenti, specifica ciascuno sulla propria riga, ad esempio, come mostrato, ARG-N.
  3. Crea o aggiorna il pool di worker utilizzando il seguente comando:

    gcloud beta 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"
  launch_stage = "BETA"

  template {
    containers {
      image = "IMAGE_URL"
      command = ["COMMAND"]
      args = ["ARG1", "ARG2"]
    }
  }
}

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.
  • COMMAND: il comando con cui viene avviato il container, se non utilizzi il comando predefinito.
  • ARG1, ARG2: l'argomento o gli argomenti che stai inviando al comando del container.

Configura l'ordine di avvio dei container per i deployment sidecar

Per specificare l'ordine di avvio dei container in un deployment sidecar, utilizza la funzionalità delle dipendenze dei container. Specifica tutti i container che hanno dipendenze ed elenca i container da cui dipendono, in modo che questi container vengano avviati per primi. I container che non hanno dipendenze vengono sempre avviati per primi e contemporaneamente.

Per utilizzare correttamente questa funzionalità, devi utilizzare i probe di controllo di integrità all'avvio. Il probe di avvio consente a Cloud Run di ispezionare l'integrità di un container dipendente, assicurandosi che venga superato prima di avviare il container successivo. Se non utilizzi i controlli di integrità, i container vengono avviati nell'ordine specificato anche se i container da cui dipendono non vengono avviati.

Tieni presente che non esiste un probe di controllo di integrità all'avvio predefinito per i pool di worker.

Utilizza la Google Cloud console, Google Cloud CLI o YAML per specificare l'ordine di avvio:

Console

  1. Nella Google Cloud console, vai alla pagina Cloud Run:

    Vai a Cloud Run

    • Seleziona Pool di worker dal menu.
    • Per un pool di worker esistente, fai clic sul pool di worker nell'elenco e seleziona Modifica ed esegui il deployment di una nuova revisione per visualizzare il modulo di deployment della revisione.
    • Per un nuovo pool di worker, fai clic su Esegui il deployment del container per visualizzare il modulo Crea pool di worker.
  2. Per un nuovo pool di worker, specifica il nome del pool di worker, l'URL del container di ingresso, l'allocazione della CPU, il controllo in entrata e l'autenticazione. Nella scheda Container, volumi, networking, sicurezza, procedi nel seguente modo:

    1. Configura il container di ingresso.
    2. Per aggiungere ciascuno degli altri container di cui stai eseguendo il deployment, fai clic su Aggiungi container.
    3. Per tutti i container tranne il container di ingresso, configura un controllo di integrità all'avvio.
    4. Se un container deve essere avviato dopo determinati altri container, seleziona questi container nel menu Ordine di avvio dei container.
  3. Per un pool di worker esistente, segui questi passaggi:

    1. Per tutti i container tranne il container di ingresso, configura un controllo di integrità all'avvio.
    2. Ogni container viene visualizzato con il proprio menu Ordine di avvio dei container. Se un container richiede l'avvio di altri container prima di poter essere avviato, utilizza il menu Ordine di avvio dei container per selezionare i container che devono essere avviati per primi.
  4. Completa le altre configurazioni richieste, quindi fai clic su Crea per un nuovo pool di worker o su Esegui il deployment per un pool di worker esistente. Attendi il completamento del deployment.

gcloud

Prima di utilizzare Google Cloud CLI per specificare l'ordine di avvio, configura un controllo di integrità all'avvio.

  1. Nella Google Cloud console, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della Google Cloud console viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già inclusa e installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Per eseguire il deployment di più container in un servizio con un ordine di avvio specificato, esegui il comando:

gcloud beta run worker-pools deploy WORKER_POOL \
     --container CONTAINER_1_NAME --image='WORKER_POOL_IMAGE'
     --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
     --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME

Sostituisci quanto segue:

  • WORKER_POOL: il nome del 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.
  • SIDECAR_IMAGE: un riferimento all'immagine container sidecar.

    Se vuoi configurare ogni container nel comando di deployment, fornisci la configurazione di ogni container dopo i parametri container.

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 beta 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/launch-stage: BETA
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'

    Sostituisci quanto segue:

    • WORKER_POOL: il nome del tuo pool di worker Cloud Run.
    • CONTAINER1: il nome del primo container che dipende da uno o più container. Puoi impostare il nome del container in YAML; Cloud Run genera automaticamente un nome se non ne viene specificato uno.
    • CONTAINER2: il nome del container che deve essere avviato prima di CONTAINER1.
    • CONTAINER3: il nome del secondo container che dipende da uno o più container.

    Nell'esempio mostrato nello snippet YAML, CONTAINER2 viene avviato per primo, CONTAINER1 per secondo e CONTAINER3 per ultimo.

  3. Crea o aggiorna il pool di worker utilizzando il seguente comando:

    gcloud beta run worker-pools replace workerpool.yaml

Visualizza la configurazione del container per il 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 visualizzarne il riquadro dei dettagli.

  4. Fai clic sulla scheda Container per visualizzare la configurazione del container del pool di worker.