Puoi configurare probe di controllo di integrità all'avvio HTTP, TCP e gRPC, oltre a probe di attività HTTP e gRPC per servizi Cloud Run nuovi ed esistenti. Configura un avvio o un probe di attività per un servizio Cloud Run utilizzando il file YAML. La configurazione varia a seconda del tipo di probe.
Puoi usare i probe di controllo dell'attività per determinare quando riavviare un container, ad esempio per rilevare un deadlock in cui un servizio è in esecuzione, ma non in grado di fare progressi. In questo caso, il riavvio di un container può aumentare la disponibilità del servizio in caso di bug.
Puoi usare i probe di avvio per determinare quando un container è stato avviato ed è pronto ad accettare il traffico.
Quando configuri un probe di avvio, i controlli di attività vengono disabilitati finché il probe di avvio determina che il container non viene avviato, per evitare interferenze con l'avvio del servizio.
i probe di avvio sono particolarmente utili se utilizzi i controlli di attività sui container di avvio lento, poiché impediscono loro di arrestarsi prematuramente prima che i container siano attivi e in esecuzione.
Fatturazione e allocazione della CPU
- La CPU viene allocata per ogni probe.
- Tutti i probe vengono fatturati per il consumo di CPU e memoria, ma non è previsto alcun addebito basato su richiesta.
Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Configura probe di avvio
Puoi configurare probe HTTP, TCP e gRPC.
Configura un probe di avvio HTTP
Non esistono probe di avvio HTTP predefiniti per HTTP, ma puoi configurarne uno per il servizio Cloud Run. Tieni presente che l'utilizzo di un probe di controllo di integrità HTTP richiede la creazione di un endpoint di controllo di integrità HTTP corrispondente nel servizio per rispondere al probe. Inoltre, il servizio deve utilizzare HTTP/1 (valore predefinito di Cloud Run), non HTTP/2.
Dopo aver configurato il probe di avvio, Cloud Run effettua una richiesta GET HTTP all'endpoint del controllo di integrità del servizio (ad esempio, /ready
). Qualsiasi risposta tra 200
e 400
è un risultato positivo, tutto il resto indica un errore.
Se il probe di avvio non va a buon fine entro il tempo specificato
(failureThreshold
* periodSeconds
), che non può superare
240 secondi, il container viene arrestato.
Se il probe di avvio HTTP ha esito positivo entro il tempo specificato e hai configurato un probe di attività HTTP, il probe di attività HTTP viene avviato.
Puoi configurare un probe di avvio HTTP utilizzando la console Google Cloud per un servizio esistente o YAML per un servizio nuovo o esistente:
Console
Fai clic sul servizio che vuoi configurare.
Fai clic sulla scheda YAML.
Fai clic su Modifica e configura l'attributo
startupProbe
come mostrato:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE 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
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest
- PATH con il percorso relativo per l'endpoint HTTP, ad esempio
/ready
. - (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del container utilizzata per il tuo servizio.
- (FACOLTATIVO)
httpHeaders
può essere utilizzato per fornire più intestazioni personalizzate o ripetute utilizzando i campi HEADER_NAME e HEADER_VALUE, come mostrato. - (FACOLTATIVO) DELAY con numero di secondi di attesa 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 fino al 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 riprovare il probe prima di contrassegnare il container come Non pronto. 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 secondo e 240 secondi. Il valore predefinito è 10 secondi.
Fai clic su Salva ed esegui il deployment di una nuova revisione.
YAML
Puoi scaricare e visualizzare le configurazioni di servizio esistenti utilizzando il comando
gcloud run services describe --format export
, che genera
risultati puliti in formato YAML.
Successivamente, potrai modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace
.
Assicurati di modificare solo i campi come documentato.
Per visualizzare e scaricare la configurazione:
gcloud run services describe SERVICE --format export > service.yaml
Configura l'attributo
startupProbe
come mostrato di seguito:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE 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
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest
- PATH con il percorso relativo per l'endpoint HTTP, ad esempio
/ready
. - (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del container utilizzata per il tuo servizio.
- (FACOLTATIVO)
httpHeaders
può essere utilizzato per fornire più intestazioni personalizzate o ripetute utilizzando i campi HEADER_NAME e HEADER_VALUE, come mostrato. - (FACOLTATIVO) DELAY con numero di secondi di attesa 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 fino al 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 riprovare il probe prima di contrassegnare il container come Non pronto. 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 secondo e 240 secondi. Il valore predefinito è 10 secondi.
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Per informazioni su come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Configura il servizio Cloud Run con l'attributo startup_probe
come mostrato di seguito:
Crea endpoint di controllo di integrità HTTP
Se configuri il servizio Cloud Run per un probe di avvio o un probe di attività HTTP, devi aggiungere un endpoint nel codice di servizio per rispondere al probe. L'endpoint può avere il nome che preferisci, ad esempio
/startup
o /ready
, ma 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:
startupProbe: httpGet: path: /ready
Gli endpoint HTTP Healthcheck sono accessibili esternamente e seguono gli stessi principi degli altri endpoint HTTP dei servizi esposti esternamente.
Configura un probe di avvio TCP
Un probe di avvio TCP viene configurato automaticamente con valori predefiniti per un nuovo servizio Cloud Run se non configuri autonomamente un probe di avvio. Il probe predefinito è equivalente al seguente:
startupProbe: tcpSocket: port: CONTAINER_PORT timeoutSeconds: 240 periodSeconds: 240 failureThreshold: 1
dove CONTAINER_PORT è impostato sulla porta del container utilizzata per il tuo servizio.
Puoi modificare questi valori predefiniti seguendo le istruzioni riportate in questa sezione.
Per i probe di avvio TCP, Cloud Run effettua una connessione TCP per aprire il socket TCP sulla porta specificata. Se Cloud Run non è in grado di stabilire una connessione, indica un errore.
Se il probe di avvio non va a buon fine entro il tempo specificato
(failureThreshold
* periodSeconds
), che non può superare
240 secondi, il container viene arrestato.
Puoi configurare un probe di avvio TCP utilizzando la console Google Cloud per un servizio esistente o YAML per un servizio nuovo o esistente:
Console
Fai clic sul servizio che vuoi configurare.
Fai clic sulla scheda YAML.
Fai clic su Modifica e configura l'attributo
startupProbe
come mostrato:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL startupProbe: failureThreshold: THRESHOLD initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT periodSeconds: PERIOD tcpSocket: port: CONTAINER_PORT
sostituisci
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest
- (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del container utilizzata per il tuo servizio.
- (Facoltativo) DELAY con numero di secondi di attesa 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 fino al 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 riprovare il probe prima di contrassegnare il container come Non pronto. 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 secondo e 240 secondi. Il valore predefinito è 10 secondi.
Fai clic su Salva ed esegui il deployment di una nuova revisione.
YAML
Puoi scaricare e visualizzare le configurazioni di servizio esistenti utilizzando il comando
gcloud run services describe --format export
, che genera
risultati puliti in formato YAML.
Successivamente, potrai modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace
.
Assicurati di modificare solo i campi come documentato.
Per visualizzare e scaricare la configurazione:
gcloud run services describe SERVICE --format export > service.yaml
Configura l'attributo
startupProbe
come mostrato di seguito:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL startupProbe: tcpSocket: port: CONTAINER_PORT initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Sostituisci
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest
- (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del container utilizzata per il tuo servizio.
- DELAY con 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 fino al 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. - THRESHOLD con il numero di volte per riprovare il probe prima di contrassegnare il container come Non pronto. 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.
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Per informazioni su come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Configura il servizio Cloud Run con l'attributo startup_probe
come mostrato di seguito:
Configura un probe di avvio gRPC
Per utilizzare un probe di avvio gRPC, devi implementare il protocollo per il controllo di integrità gRPC nel servizio Cloud Run, quindi configurare il probe di conseguenza, come descritto in questa sezione.
Puoi configurare un probe di avvio gRPC utilizzando la console Google Cloud per un servizio esistente o YAML per un servizio nuovo o esistente:
Console
Fai clic sul servizio che vuoi configurare.
Fai clic sulla scheda YAML.
Fai clic su Modifica e configura l'attributo
startupProbe
come mostrato:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE 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
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest
- (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del container utilizzata per il tuo servizio.
- GRPC_SERVICE con il nome del servizio gRPC a cui inviare il controllo di integrità.
- (Facoltativo) DELAY con numero di secondi di attesa 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 fino al 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 riprovare il probe prima di contrassegnare il container come Non pronto. 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 secondo e 240 secondi. Il valore predefinito è 10 secondi.
Fai clic su Salva ed esegui il deployment di una nuova revisione.
YAML
Puoi scaricare e visualizzare le configurazioni di servizio esistenti utilizzando il comando
gcloud run services describe --format export
, che genera
risultati puliti in formato YAML.
Successivamente, potrai modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace
.
Assicurati di modificare solo i campi come documentato.
Per visualizzare e scaricare la configurazione:
gcloud run services describe SERVICE --format export > service.yaml
Configura l'attributo
startupProbe
come mostrato di seguito:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE 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
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest
- GRPC_SERVICE con il nome del servizio gRPC a cui inviare il controllo di integrità.
- (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del container utilizzata per il tuo servizio.
- (FACOLTATIVO) DELAY con numero di secondi di attesa 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 fino al 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 riprovare il probe prima di contrassegnare il container come Non pronto. 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 secondo e 240 secondi. Il valore predefinito è 10 secondi.
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Per informazioni su come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Configura il servizio Cloud Run con l'attributo startup_probe
come mostrato di seguito:
resource "google_cloud_run_service" "default" { provider = google-beta name = "cloudrun-service-healthcheck" location = "us-central1" project = "tf-healthchecks-grpc-probe-1" template { spec { containers { # Note: Change to the name of your image image = "us-docker.pkg.dev/cloudrun/container/hello" startup_probe { failure_threshold = 5 initial_delay_seconds = 10 timeout_seconds = 3 period_seconds = 3 grpc { # Note: Change to the name of your pre-existing grpc health status service service = "grpc.health.v1.Health" } } } } } traffic { percent = 100 latest_revision = true } }
Configura un probe di attività
Puoi configurare probe di attività HTTP e gRPC.
Configura un probe di attività HTTP
Se configuri un probe di avvio HTTP, il probe di attività viene avviato solo dopo l'esito positivo del probe di avvio. Tieni presente che l'utilizzo di un probe di controllo di integrità HTTP richiede la creazione di un endpoint di controllo di integrità HTTP corrispondente nel servizio per rispondere al probe. Inoltre, il servizio deve utilizzare HTTP/1 (valore predefinito di Cloud Run), non HTTP/2.
Dopo aver configurato il probe di attività e se ogni probe di avvio ha esito positivo, Cloud Run effettua una richiesta GET HTTP all'endpoint del controllo di integrità del servizio (ad esempio, /health
). Qualsiasi risposta tra 200
e 400
è un'operazione riuscita, tutto il resto indica un errore.
Se il probe di avvio non va a buon fine entro il tempo specificato
(failureThreshold
* periodSeconds
), che non può superare
240 secondi, il container viene arrestato.
Se il probe di attività HTTP non va a buon fine entro il tempo specificato, il container viene arrestato e quindi viene riavviato dalla richiesta in entrata successiva.
Puoi configurare un probe di attività HTTP utilizzando la console Google Cloud per un servizio esistente o YAML per un servizio nuovo o esistente:
Console
Fai clic sul servizio che vuoi configurare.
Fai clic sulla scheda YAML.
Fai clic su Modifica e configura l'attributo
livenessProbe
come mostrato:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: image: IMAGE_URL livenessProbe: httpGet: path: PATH port: CONTAINER_PORT httpHeaders: - name: HEADER_NAME value: HEADER_VALUE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Sostituisci
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest
- PATH con il percorso relativo per l'endpoint HTTP, ad esempio
/ready
. - (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del container utilizzata per il tuo servizio.
- (FACOLTATIVO)
httpHeaders
può essere utilizzato per fornire più intestazioni personalizzate o ripetute utilizzando i campi HEADER_NAME e HEADER_VALUE, come mostrato. - (FACOLTATIVO) DELAY con numero di secondi di attesa 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 fino al timeout del probe. Questo valore non può superare il valore specificato per
periodSeconds
. Specifica un valore compreso tra 1 e 3600. Il valore predefinito è 1. - (FACOLTATIVO) THRESHOLD con il numero di volte per riprovare il probe prima di contrassegnare il container come Non pronto. 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 secondo e 3600 secondi. Il valore predefinito è 10 secondi.
Fai clic su Salva ed esegui il deployment di una nuova revisione.
YAML
Puoi scaricare e visualizzare le configurazioni di servizio esistenti utilizzando il comando
gcloud run services describe --format export
, che genera
risultati puliti in formato YAML.
Successivamente, potrai modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace
.
Assicurati di modificare solo i campi come documentato.
Per visualizzare e scaricare la configurazione:
gcloud run services describe SERVICE --format export > service.yaml
Configura l'attributo
livenessProbe
come mostrato di seguito:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL livenessProbe: httpGet: path: PATH port: CONTAINER_PORT httpHeaders: - name: HEADER_NAME value: HEADER_VALUE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Sostituisci
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest
- PATH con il percorso relativo per l'endpoint HTTP, ad esempio
/ready
. - (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del container utilizzata per il tuo servizio.
- (FACOLTATIVO)
httpHeaders
può essere utilizzato per fornire più intestazioni personalizzate o ripetute utilizzando i campi HEADER_NAME e HEADER_VALUE, come mostrato. - (FACOLTATIVO) DELAY con numero di secondi di attesa 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 fino al timeout del probe. Questo valore non può superare il valore specificato per
periodSeconds
. Specifica un valore compreso tra 1 e 3600. Il valore predefinito è 1. - (FACOLTATIVO) THRESHOLD con il numero di volte per riprovare il probe prima di contrassegnare il container come Non pronto. 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 secondo e 3600 secondi. Il valore predefinito è 10 secondi.
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Per informazioni su come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Configura il servizio Cloud Run con l'attributo liveness_probe
come mostrato di seguito:
Dopo la configurazione del probe HTTP, devi anche creare un endpoint del controllo di integrità per rispondere al probe.
Configura un probe di attività gRPC
Se configuri un probe di avvio gRPC, il probe di attività viene avviato solo dopo che il probe di avvio è riuscito. Tieni presente che l'utilizzo di un probe di controllo di integrità gRPC richiede l'implementazione del protocollo per il controllo di integrità gRPC nel servizio Cloud Run.
Una volta configurato il probe di attività e dopo che qualsiasi probe di avvio ha esito positivo, Cloud Run effettua una richiesta di controllo di integrità al servizio.
Se il probe di avvio non va a buon fine entro il tempo specificato
(failureThreshold
* periodSeconds
), che non può superare
240 secondi, il container viene arrestato.
Se il probe di attività gRPC non riesce entro il tempo specificato, il container viene arrestato e poi viene riavviato dalla richiesta in entrata successiva.
Puoi configurare un probe di attività gRPC utilizzando la console Google Cloud per un servizio esistente o YAML per un servizio nuovo o esistente:
Console
Fai clic sul servizio che vuoi configurare.
Fai clic sulla scheda YAML.
Fai clic su Modifica e configura l'attributo
livenessProbe
come mostrato:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: image: IMAGE_URL livenessProbe: grpc: port: CONTAINER_PORT service: GRPC_SERVICE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Sostituisci
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest
- (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del container utilizzata per il tuo servizio.
- GRPC_SERVICE con il nome del servizio gRPC a cui inviare il controllo di integrità.
- (FACOLTATIVO) DELAY con numero di secondi di attesa 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 fino al timeout del probe. Questo valore non può superare il valore specificato per
periodSeconds
. Specifica un valore compreso tra 1 e 3600. Il valore predefinito è 1. - (FACOLTATIVO) THRESHOLD con il numero di volte per riprovare il probe prima di contrassegnare il container come Non pronto. 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 secondo e 3600 secondi. Il valore predefinito è 10 secondi.
Fai clic su Salva ed esegui il deployment di una nuova revisione.
YAML
Puoi scaricare e visualizzare le configurazioni di servizio esistenti utilizzando il comando
gcloud run services describe --format export
, che genera
risultati puliti in formato YAML.
Successivamente, potrai modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace
.
Assicurati di modificare solo i campi come documentato.
Per visualizzare e scaricare la configurazione:
gcloud run services describe SERVICE --format export > service.yaml
Configura l'attributo
livenessProbe
come mostrato di seguito:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL livenessProbe: grpc: port: CONTAINER_PORT service: GRPC_SERVICE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Sostituisci
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest
- (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del container utilizzata per il tuo servizio.
- GRPC_SERVICE con il nome del servizio gRPC a cui inviare il controllo di integrità.
- (FACOLTATIVO) DELAY con numero di secondi di attesa 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 fino al timeout del probe. Questo valore non può superare il valore specificato per
periodSeconds
. Specifica un valore compreso tra 1 e 3600. Il valore predefinito è 1. - (FACOLTATIVO) THRESHOLD con il numero di volte per riprovare il probe prima di contrassegnare il container come Non pronto. 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 secondo e 3600 secondi. Il valore predefinito è 10 secondi.
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Per informazioni su come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Configura il servizio Cloud Run con l'attributo liveness_probe
come mostrato di seguito: