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.
Nella console Google Cloud , vai alla pagina Cloud Run.
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.
Espandi Container, volumi, networking, sicurezza.
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à.
Nel menu Seleziona il tipo di controllo di integrità, seleziona il tipo di avvio del controllo di integrità.
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.
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.
- Utilizza il campo Percorso per specificare il percorso relativo all'endpoint, ad esempio
- 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.
- Se utilizzi i probe HTTP:
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
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
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.
Crea o aggiorna il job utilizzando il seguente comando:
gcloud run jobs replace job.yaml
Avvio HTTP
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
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.
Crea o aggiorna il job utilizzando il seguente comando:
gcloud run jobs replace job.yaml
Avvio di gRPC
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
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 RPCgrpc.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.
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