Configura i controlli di integrità dei container (job)

Questa pagina descrive come configurare i controlli 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 riesce ad avviarsi ripetutamente, Cloud Run limita i riavvii delle attività per impedire loop di arresti anomali incontrollati.

Requisiti e comportamento delle sonde

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

Se un controllo di avvio non va a buon fine entro l'intervallo di tempo specificato, Cloud Run arresta il contenitore. 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 GET HTTP all'endpoint di controllo di integrità del job (ad esempio /ready). Qualsiasi risposta compresa tra 200 e 400 indica un buon esito, mentre tutte le altre indicano un errore.

Se un probe di avvio non va a buon fine entro il tempo specificato (failureThreshold * periodSeconds), che non può superare i 240 secondi, il contenitore viene arrestato
Avvio di gRPC Implementa il protocollo di controllo di 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 contenitore viene arrestato

Configura i probe

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

Console

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

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

    Vai a Cloud Run

  2. Per un nuovo job, fai clic su ESEGUI IL DEPLOYMENT DEL CONTAINER e poi su Job. Per un job esistente, fai clic sulla scheda Job, poi sul job che ti interessa e infine su VISUALIZZA E MODIFICA LA CONFIGURAZIONE DEL JOB.

  3. Espandi Container, volumi, networking, sicurezza.

  4. Nella sezione Contenitori, vai a Controlli di integrità e fai clic su Aggiungi controllo di integrità per aprire il riquadro 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 form di configurazione della sonda.

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

    • Se utilizzi i 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 contenitore prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 240 secondi. Il valore predefinito è 0 secondi.
    • Per Periodo, specifica l'intervallo di tempo (in secondi) in cui eseguire la sonda. Ad esempio 2 per eseguire la sonda ogni 2 secondi. Specifica un valore compreso tra 1 e 240 secondi. Il valore predefinito è 10 secondi.
    • Per Soglia di errore, specifica quante volte deve essere ripetuto il probe prima di spegnere il contenitore. Il valore predefinito è 3.
    • Per Timeout, specifica quanti secondi attendere prima che la sonda 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 controlli HTTP, devi anche aggiungere un endpoint nel codice del job per rispondere al controllo. 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 contenitore del job, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • (Facoltativo) CONTAINER_PORT con la porta su cui il contenitore del job è in ascolto per la sonda.
    • 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 di attesa 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 volte per riprovare il probe prima di spegnere il container. Il valore predefinito è 3.
    • PERIOD con il periodo (in secondi) in cui eseguire il probe. Ad esempio 2 per eseguire la sonda 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 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 del contenitore 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 contenitore del job è in ascolto per la sonda.
    • (Facoltativo) httpHeaders può essere utilizzato per fornire intestazioni personalizzate ripetute o multiple 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 da 0 a 240 secondi. Il valore predefinito è 0 secondi.
    • (Facoltativo) TIMEOUT con il numero di secondi di attesa 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 volte per ripetere il probe prima di spegnere il contenitore. Il valore predefinito è 3.
    • (Facoltativo) PERIOD con il periodo (in secondi) in cui eseguire la sonda. Ad esempio 2 per eseguire la sonda 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 contenitore del job, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • (Facoltativo) GRPC_SERVICE. Se impostato, 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 contenitore del job è in ascolto per la sonda.
    • (Facoltativo) DELAY con il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore da 0 a 240 secondi. Il valore predefinito è 0 secondi.
    • (Facoltativo) TIMEOUT con il numero di secondi di attesa prima del timeout 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 volte per ripetere il probe prima di smettere di eseguire il container. Il valore predefinito è 3.
    • (Facoltativo) PERIOD con il periodo (in secondi) in cui eseguire la sonda. Ad esempio 2 per eseguire la sonda 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

Creare endpoint di controllo di integrità HTTP

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

startupProbe:
  httpGet:
    path: /ready