Configura i controlli di integrità dei container per i job

Questa pagina descrive come configurare i probe di avvio HTTP, TCP e gRPC per i job Cloud Run nuovi ed esistenti. La configurazione varia a seconda del tipo di sonda.

Casi d'uso

Puoi configurare i probe di controllo di integrità all'avvio. I probe di avvio determinano se il container è stato avviato ed è pronto per eseguire il job.

Quando un job non viene avviato ripetutamente, Cloud Run limita i riavvii delle attività per evitare loop di arresto anomalo incontrollati.

Requisiti e comportamento del probe

Tipo di sonda Requisiti Comportamento
Avvio TCP Nessuno Se Cloud Run non riesce a stabilire una connessione, indica un errore.

Se un probe di avvio non va a buon fine entro l'intervallo di tempo specificato, Cloud Run arresta il container. Questo intervallo di tempo viene calcolato come failureThreshold * periodSeconds e non può superare i 240 secondi.
Avvio HTTP Crea un endpoint di controllo di integrità HTTP
Utilizza HTTP/1
Dopo aver configurato il probe, Cloud Run invia una richiesta HTTP GET all'endpoint di controllo di integrità del job (ad esempio, /ready). Qualsiasi risposta compresa tra 200 e 400 indica esito positivo, tutto il resto indica esito negativo.

Se un probe di avvio non va a buon fine entro il tempo specificato (failureThreshold * periodSeconds), che non può superare i 240 secondi, il container viene arrestato.
Avvio di gRPC Implementa il protocollo di controllo dell'integrità gRPC nel tuo job Cloud Run Se un probe di avvio non va a buon fine entro il tempo specificato (failureThreshold * periodSeconds), che non può superare i 240 secondi, il container viene arrestato.

Configura probe

Configura i probe HTTP, TCP e gRPC utilizzando la console Google Cloud o YAML:

Console

Importante: se stai configurando il job Cloud Run per i probe HTTP, devi anche aggiungere un endpoint di controllo di integrità HTTP nel codice del job per rispondere al probe. Se stai configurando un probe gRPC, devi anche implementare il protocollo di controllo di integrità gRPC nel tuo job Cloud Run.

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

    Vai a Cloud Run

  2. Per un nuovo job, fai clic su Esegui il deployment del container. Per un job esistente, fai clic sulla scheda Job, sul job che ti interessa e poi su Visualizza e modifica la configurazione del job.

  3. Espandi Container, volumi, networking, sicurezza.

  4. Nella sezione Container, vai a Controlli di integrità e fai clic su Aggiungi controllo di integrità per aprire il pannello di configurazione Aggiungi controllo di integrità.

  5. Nel menu Seleziona il tipo di controllo di integrità, seleziona il tipo di avvio del controllo di integrità.

  6. Nel menu Seleziona il tipo di probe, seleziona il tipo di probe, ad esempio HTTP o gRPC. Viene visualizzato il modulo di configurazione del probe.

  7. Tieni presente che la configurazione del probe varia in base al tipo di probe. Configura le impostazioni del probe:

    • Se utilizzi probe HTTP:
      • Utilizza il campo Percorso per specificare il percorso relativo all'endpoint, ad esempio /.
      • Seleziona la casella di controllo Intestazioni HTTP per specificare intestazioni personalizzate facoltative. Poi specifica il nome dell'intestazione nel campo Nome e il valore dell'intestazione nel campo Valore. Fai clic su Aggiungi intestazione HTTP per specificare altre intestazioni.
    • In Porta, specifica la porta su cui il container del job rimane in ascolto per il probe.
    • Per Ritardo iniziale, specifica quanti secondi attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 secondi e 240 secondi. Il valore predefinito è 0 secondi.
    • Per Periodo, specifica l'intervallo di tempo (in secondi) in cui eseguire il probe. Ad esempio, 2 per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 240 secondi. Il valore predefinito è 10 secondi.
    • Per Soglia di errore, specifica il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
    • Per Timeout, specifica quanti secondi attendere prima che il probe scada. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 240. Il valore predefinito è 1.
  8. Fai clic su Aggiungi per aggiungere la nuova soglia.

YAML

Importante: se stai configurando il job Cloud Run per i probe HTTP, devi anche aggiungere un endpoint nel codice del job per rispondere al probe. Se stai configurando un probe gRPC, devi anche implementare il protocollo di controllo di integrità gRPC nel tuo job Cloud Run.

Avvio TCP

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

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configura l'attributo startupProbe come mostrato:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
     name: JOB
    spec:
     template:
       metadata:
       spec:
         containers:
         - image: IMAGE_URL
           startupProbe:
             tcpSocket:
               port: CONTAINER_PORT
             initialDelaySeconds: DELAY
             timeoutSeconds: TIMEOUT
             failureThreshold: THRESHOLD
             periodSeconds: PERIOD

    Sostituisci le seguenti variabili:

    • JOB con il nome del tuo job Cloud Run.
    • IMAGE_URL con l'URL dell'immagine del container del job, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • (Facoltativo) CONTAINER_PORT con la porta su cui il container del job è in ascolto per il probe.
    • DELAY con il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 240 secondi. Il valore predefinito è 0 secondi.
    • (Facoltativo) TIMEOUT con il numero di secondi da attendere prima del time out del probe. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 240. Il valore predefinito è 1.
    • THRESHOLD con il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
    • PERIOD con il periodo (in secondi) in cui eseguire il probe. Ad esempio, 2 per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 240 secondi. Il valore predefinito è 10 secondi.
  3. Crea o aggiorna il job utilizzando il seguente comando:

    gcloud run jobs replace job.yaml

Avvio HTTP

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

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configura l'attributo startupProbe come mostrato:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              httpGet:
                path: PATH
                port: CONTAINER_PORT
                httpHeaders:
                  - name: HEADER_NAME
                    value: HEADER_VALUE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    Sostituisci le seguenti variabili:

    • JOB con il nome del tuo job Cloud Run.
    • IMAGE_URL con l'URL dell'immagine container del job, ad esempio, us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH con il percorso relativo all'endpoint HTTP, ad esempio /ready.
    • (Facoltativo) CONTAINER_PORT con la porta su cui il container del job è in ascolto del probe.
    • (Facoltativo) httpHeaders può essere utilizzato per fornire intestazioni personalizzate multiple o ripetute utilizzando i campi HEADER_NAME e HEADER_VALUE come mostrato.
    • (Facoltativo) DELAY con il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 240 secondi. Il valore predefinito è 0 secondi.
    • (Facoltativo) TIMEOUT con il numero di secondi da attendere prima del time out del probe. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 240. Il valore predefinito è 1.
    • (Facoltativo) THRESHOLD con il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
    • (Facoltativo) PERIOD con il periodo (in secondi) in cui eseguire il probe. Ad esempio, 2 per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 240 secondi. Il valore predefinito è 10 secondi.
  3. Crea o aggiorna il job utilizzando il seguente comando:

    gcloud run jobs replace job.yaml

Avvio di gRPC

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

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configura l'attributo startupProbe come mostrato:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              grpc:
                service: GRPC_SERVICE
                port: CONTAINER_PORT
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    Sostituisci le seguenti variabili:

    • JOB con il nome del tuo job Cloud Run.
    • IMAGE_URL con l'URL dell'immagine del container del job, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • (Facoltativo) GRPC_SERVICE. Se impostato, questo valore viene utilizzato nel campo service di grpc.health.v1.HealthCheckRequest quando viene chiamata la RPC grpc.health.v1.Health.Check.
    • (Facoltativo) CONTAINER_PORT con la porta su cui il container del job è in ascolto per il probe.
    • (Facoltativo) DELAY con il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 240 secondi. Il valore predefinito è 0 secondi.
    • Facoltativo: TIMEOUT con il numero di secondi da attendere prima del time out del probe. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 240. Il valore predefinito è 1.
    • (Facoltativo) THRESHOLD con il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
    • (Facoltativo) PERIOD con il periodo (in secondi) in cui eseguire il probe. Ad esempio, 2 per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 240 secondi. Il valore predefinito è 10 secondi.
  3. Crea o aggiorna il job utilizzando il seguente comando:

    gcloud run jobs replace job.yaml

Crea endpoint di controllo di integrità HTTP

Se configuri il job Cloud Run per un probe di avvio HTTP, devi aggiungere un endpoint nel codice del job per rispondere al probe. Puoi utilizzare qualsiasi nome per l'endpoint, ad esempio /startup o /ready. Il nome deve corrispondere ai valori specificati per path nella configurazione del probe. Ad esempio, se specifichi /ready per un probe di avvio HTTP, specifica path nella configurazione del probe come mostrato di seguito:

startupProbe:
  httpGet:
    path: /ready