I controlli di integrità di Cloud Run assicurano che le istanze container siano in esecuzione correttamente e siano in grado di gestire il traffico. Con i controlli di integrità di Cloud Run, puoi personalizzare quando il container è pronto per ricevere richieste e quando deve essere considerato non integro per richiedere un riavvio.
Casi d'uso
Puoi configurare i seguenti tipi di probe per controllo di integrità:
I probe di avvio determinano se il container è stato avviato ed è pronto ad accettare il traffico.
- Quando configuri un probe di avvio, i controlli di attività e idoneità vengono disattivati finché il probe di avvio non determina che il container è stato avviato, per evitare interferenze con l'avvio del servizio.
- I probe di avvio sono particolarmente utili se utilizzi i controlli di attività su container con avvio lento, perché impediscono l'arresto prematuro dei container prima che siano attivi e funzionanti.
I probe di attività determinano se riavviare un container.
- Il riavvio di un container in questo caso può aumentare la disponibilità del servizio in caso di bug.
- I probe di attività sono destinati a riavviare singole istanze che non possono essere recuperate in altro modo. Dovrebbero essere utilizzati principalmente per errori di istanza non recuperabili, ad esempio per rilevare un deadlock in cui un servizio è in esecuzione, ma non è in grado di procedere. Puoi richiedere un probe di attività per ogni container utilizzando le policy dell'organizzazione personalizzate.
- Quando un servizio riscontra errori ripetuti dei probe, Cloud Run limita i riavvii delle istanze per evitare loop di arresti anomali incontrollati.
-
I probe di idoneità determinano quando un'istanza nel tuo servizio Cloud Run deve gestire il traffico. I controlli di idoneità iniziano dopo che il probe di avvio del container ha esito positivo. Se un'istanza non supera il probe di idoneità oltre il valore della soglia di errore configurato, Cloud Run smette di inviarle nuovo traffico. Cloud Run non termina l'istanza e invia nuovamente il traffico all'istanza quando inizia a superare di nuovo il probe di idoneità.
Il container deve implementare i probe di avvio, attività e idoneità in modo coerente. Una volta superato il controllo di avvio, Cloud Run considera il container pronto per gestire il traffico.
Ti consigliamo di incapsulare la logica in modo che il probe di avvio tenga conto dell'idoneità. Poiché Cloud Run può instradare il traffico a una nuova istanza prima del completamento del primo probe di idoneità, assicurati che il superamento del probe di avvio garantisca anche l'idoneità a gestire il traffico in sicurezza immediatamente. Quando il probe di avvio ha esito positivo, consideriamo il container pronto a ricevere traffico.
Configura i probe di avvio
Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Puoi configurare i probe HTTP, TCP e gRPC utilizzando la console Google Cloud , YAML o Terraform:
Console
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu di navigazione di Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Esegui il deployment del container e compila la pagina delle impostazioni iniziali del servizio. Quindi fai clic su Container, networking, sicurezza per espandere la pagina di configurazione del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio, quindi sulla scheda Container.
Nella sezione Controlli di integrità, fai clic su Aggiungi controllo di integrità per aprire il riquadro di configurazione Aggiungi controllo di integrità.
Dal menu Seleziona il tipo di controllo di integrità, seleziona Controllo di avvio.
Dal menu Seleziona il tipo di probe, seleziona il tipo di probe che vuoi utilizzare, ad esempio HTTP o gRPC. Viene visualizzato il modulo di configurazione del probe. La configurazione del probe varia in base al tipo di probe. Configura le impostazioni del probe:
Se utilizzi i probe HTTP:
-
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio
/startup,/healtho/are_you_ready) deve corrispondere apathnella configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente. - Utilizza il campo Percorso per specificare il percorso relativo dell'endpoint, ad esempio
/. - Seleziona la casella di controllo Intestazioni HTTP per specificare intestazioni personalizzate facoltative. 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.
-
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio
Se utilizzi i probe gRPC:
- Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
In Porta, specifica la porta del container utilizzata per il servizio.
In Ritardo iniziale, specifica il numero di secondi di attesa prima dell'esecuzione del primo probe dopo l'avvio del container. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
In Periodo, specifica il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 600 secondi (1800 per la GPU). Il valore predefinito è 10 secondi.In Soglia di errore, specifica il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
Per Timeout, specifica 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 600 (1800 per la GPU). Il valore predefinito è 1.
Fai clic su Aggiungi per aggiungere la nuova soglia.
Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
Per eliminare un probe, fai clic sull'icona Elimina per il controllo di integrità che vuoi eliminare, quindi fai clic su Conferma. Per eseguire il deployment di una nuova revisione del servizio Cloud Run, fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche.
gcloud
Avvio TCP
Esegui questo comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--startup-probe tcpSocket.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio.
- DELAY: il numero di secondi di attesa dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
- Facoltativo. TIMEOUT: 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 600 (1800 per la GPU). Il valore predefinito è 1. - THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
- PERIOD: il periodo (in secondi) in cui eseguire il probe.
Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 600 secondi (1800 per la GPU). Il valore predefinito è 10 secondi.
Avvio HTTP
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio /startup,
/health o /are_you_ready) deve corrispondere a path nella
configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.
Esegui questo comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--startup-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: un percorso relativo all'endpoint HTTP, ad esempio
/health. - Facoltativo. CONTAINER_PORT: impostato sulla porta del container utilizzata per il servizio.
- Facoltativo. DELAY: il numero di secondi di attesa dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
- Facoltativo. THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: il numero di secondi di attesa prima che il probe scada. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 600 (1800 per la GPU). Il valore predefinito è 1.
- Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 600 secondi (1800 per la GPU). Il valore predefinito è 10 secondi.
Avvio gRPC
Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
Esegui questo comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--startup-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo del servizio di
grpc.health.v1.HealthCheckRequestquando viene chiamata la RPCgrpc.health.v1.Health.Check. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio.
- Facoltativo. DELAY: il numero di secondi di attesa dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
- Facoltativo. THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: il numero di secondi di attesa prima che il probe scada. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 600 (1800 per la GPU). Il valore predefinito è 1.
- Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 600 secondi (1800 per la GPU). Il valore predefinito è 10 secondi.
YAML
Avvio TCP
Configura l'attributo
startupProbecome mostrato: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 quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio.
- DELAY: il numero di secondi di attesa dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
- Facoltativo. TIMEOUT: 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 600 (1800 per la GPU). Il valore predefinito è 1. - THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
- PERIOD: il periodo (in secondi) in cui eseguire il probe.
Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 600 secondi (1800 per la GPU). Il valore predefinito è 10 secondi.
Avvio HTTP
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio /startup,
/health o /are_you_ready) deve corrispondere a path nella
configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.
Configura l'attributo
startupProbecome 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 quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: un percorso relativo all'endpoint HTTP, ad esempio
/health. - Facoltativo. CONTAINER_PORT: impostato sulla porta del container utilizzata per il servizio.
- Facoltativo. DELAY: il numero di secondi di attesa dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
- Facoltativo. THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
- Facoltativo:
httpHeaderspuò essere utilizzato per fornire intestazioni personalizzate multiple o ripetute utilizzando i campi HEADER_NAME e HEADER_VALUE come mostrato. - Facoltativo. TIMEOUT: 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 600 (1800 per la GPU). Il valore predefinito è 1.
- Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 600 secondi (1800 per la GPU). Il valore predefinito è 10 secondi.
Avvio di gRPC
Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
Configura l'attributo
startupProbecome 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 quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo del servizio di
grpc.health.v1.HealthCheckRequestquando viene chiamata la RPCgrpc.health.v1.Health.Check. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio.
- Facoltativo. DELAY: il numero di secondi di attesa dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
- Facoltativo. THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: il numero di secondi di attesa prima che il probe scada. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 600 (1800 per la GPU). Il valore predefinito è 1.
- Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 600 secondi (1800 per la GPU). Il valore predefinito è 10 secondi.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Avvio TCP
Configura il servizio Cloud Run con l'attributo startup_probe come mostrato:
Avvio HTTP
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio /startup,
/health o /are_you_ready) deve corrispondere a path nella
configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.
Configura il servizio Cloud Run con l'attributo startup_probe come mostrato:
Avvio gRPC
Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
Configura il servizio Cloud Run con l'attributo startup_probe come mostrato:
Il probe di avvio TCP predefinito
Se non configuri esplicitamente un probe di avvio TCP per un nuovo servizio Cloud Run, Cloud Run ne configura automaticamente uno con i seguenti valori predefiniti:
startupProbe:
timeoutSeconds: 240
periodSeconds: 240
failureThreshold: 1
Puoi modificare questi valori predefiniti seguendo le istruzioni riportate nella sezione Configurazione dei probe di questa pagina.
Requisiti e comportamento del probe di avvio
| Tipo di probe | Requisiti | Comportamento |
|---|---|---|
| Avvio TCP | Nessuno | Per impostazione predefinita, Cloud Run stabilisce una connessione TCP per aprire il socket TCP sulla porta specificata. Se Cloud Run non riesce a stabilire una connessione, indica un errore. Se un probe di avvio non va a buon fine entro il tempo specificato ( failureThreshold * periodSeconds), che non può superare i 600 secondi (1800 per la GPU), il container viene arrestato. Consulta anche Valori predefiniti TCP. |
| Avvio HTTP | Crea un endpoint di controllo di integrità HTTP Utilizza HTTP/1 |
Dopo la configurazione del probe, Cloud Run invia una richiesta GET HTTP all'endpoint del controllo di integrità (ad esempio /health). Qualsiasi risposta 2XX o 3XX indica un esito positivo, mentre qualsiasi altra risposta indica un errore.Se un probe di avvio non ha esito positivo entro il tempo specificato ( failureThreshold * periodSeconds), che non può superare i 600 secondi (1800 per la GPU), 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, viene avviato il probe di attività HTTP. |
| Avvio gRPC | Implementa il protocollo di controllo di integrità gRPC nel tuo servizio Cloud Run | Se un probe di avvio non va a buon fine entro il tempo specificato (failureThreshold * periodSeconds), che non può superare i 600 secondi (1800 per la GPU), il container viene arrestato. |
configura probe di attività
Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Puoi configurare i probe HTTP e gRPC utilizzando la console Google Cloud , YAML o Terraform:
Console
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu di navigazione di Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Esegui il deployment del container e compila la pagina delle impostazioni iniziali del servizio. Quindi fai clic su Container, networking, sicurezza per espandere la pagina di configurazione del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio, quindi sulla scheda Container.
Nella sezione Controlli di integrità, fai clic su Aggiungi controllo di integrità per aprire il riquadro di configurazione Aggiungi controllo di integrità.
Dal menu Seleziona il tipo di controllo di integrità, seleziona Controllo di attività.
Dal menu Seleziona il tipo di probe, seleziona il tipo di probe che vuoi utilizzare, ad esempio HTTP o gRPC. Viene visualizzato il modulo di configurazione del probe.
La configurazione del probe varia in base al tipo di probe. Configura le impostazioni del probe:
Se utilizzi i probe HTTP:
-
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio
/startup,/healtho/are_you_ready) deve corrispondere apathnella configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente. - Utilizza il campo Percorso per specificare il percorso relativo dell'endpoint, ad esempio
/. - Seleziona la casella di controllo Intestazioni HTTP per specificare intestazioni personalizzate facoltative. 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.
-
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio
Se utilizzi i probe gRPC:
- Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
In Porta, specifica la porta del container utilizzata per il servizio.
In Ritardo iniziale, specifica il numero di secondi di attesa prima dell'esecuzione del primo probe dopo l'avvio del container. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
In Periodo, specifica il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 3600 secondi. Il valore predefinito è 10 secondi.In Soglia di errore, specifica il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
In Timeout, specifica il numero di secondi di attesa prima che il probe scada. Questo valore non può superare il valore specificato per
periodSeconds. Specifica un valore compreso tra 1 e 3600. Il valore predefinito è 1.
Fai clic su Aggiungi per aggiungere la nuova soglia.
Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
Per eliminare un probe, fai clic sull'icona Elimina per il controllo di integrità che vuoi eliminare, quindi fai clic su Conferma. Per eseguire il deployment di una nuova revisione del servizio Cloud Run, fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche.
gcloud
HTTP liveness
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio /startup,
/health o /are_you_ready) deve corrispondere a path nella
configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.
Esegui questo comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--liveness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: un percorso relativo all'endpoint HTTP, ad esempio
/health. - Facoltativo. CONTAINER_PORT: impostato sulla porta del container utilizzata per il servizio.
- Facoltativo. DELAY: il numero di secondi di attesa dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
- Facoltativo. THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: 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 3600.Il valore predefinito è 1. - Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 3600 secondi. Il valore predefinito è 10 secondi.
Attività gRPC
Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
Esegui questo comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--liveness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo del servizio di
grpc.health.v1.HealthCheckRequestquando viene chiamata la RPCgrpc.health.v1.Health.Check. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio.
- Facoltativo. DELAY: il numero di secondi di attesa dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
- Facoltativo. THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: 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 3600.Il valore predefinito è 1. - Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 3600 secondi. Il valore predefinito è 10 secondi.
YAML
HTTP liveness
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio /startup,
/health o /are_you_ready) deve corrispondere a path nella
configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.
Configura l'attributo
livenessProbecome 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 quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: un percorso relativo all'endpoint HTTP, ad esempio
/health. - Facoltativo. CONTAINER_PORT: impostato sulla porta del container utilizzata per il servizio.
- Facoltativo. DELAY: il numero di secondi di attesa dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
- Facoltativo. THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
- Facoltativo:
httpHeaderspuò essere utilizzato per fornire intestazioni personalizzate multiple o ripetute utilizzando i campi HEADER_NAME e HEADER_VALUE come mostrato. - Facoltativo. TIMEOUT: 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 3600.Il valore predefinito è 1. - Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 3600 secondi. Il valore predefinito è 10 secondi.
Attività gRPC
Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
Configura l'attributo
livenessProbecome 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 quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo del servizio di
grpc.health.v1.HealthCheckRequestquando viene chiamata la RPCgrpc.health.v1.Health.Check. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio.
- Facoltativo. DELAY: il numero di secondi di attesa dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 600 secondi (1800 per la GPU). Il valore predefinito è 0 secondi.
- Facoltativo. THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: 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 3600.Il valore predefinito è 1. - Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 3600 secondi. Il valore predefinito è 10 secondi.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
HTTP liveness
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio /startup,
/health o /are_you_ready) deve corrispondere a path nella
configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.
Configura il servizio Cloud Run con l'attributo liveness_probe come mostrato:
Attività gRPC
Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
Configura il servizio Cloud Run con l'attributo liveness_probe come mostrato:
Requisiti e comportamento del probe di attività
| Tipo di probe | Requisiti | Comportamento |
|---|---|---|
| HTTP liveness | Crea un endpoint di controllo di integrità HTTP Utilizza HTTP/1 |
Il probe di attività viene avviato solo dopo che il probe di avvio è stato completato con successo. Dopo la configurazione del probe e l'esito positivo di qualsiasi probe di avvio, Cloud Run invia una richiesta GET HTTP all'endpoint del controllo di integrità (ad esempio /health). Qualsiasi risposta 2XX o 3XX indica un esito positivo, mentre qualsiasi altra risposta indica un errore.Se un probe di attività non viene completato entro il tempo specificato ( failureThreshold * periodSeconds), il container viene arrestato utilizzando un segnale SIGKILL. Eventuali richieste rimanenti ancora gestite dal container vengono terminate con il codice di stato HTTP 503. Dopo l'arresto del container, la scalabilità automatica di Cloud Run avvia una nuova istanza del container. |
| Attività gRPC | Implementa il protocollo di controllo di integrità gRPC nel tuo servizio Cloud Run | Se configuri un probe di avvio gRPC, il probe di attività viene avviato solo dopo che il probe di avvio è stato eseguito correttamente. Dopo aver configurato il probe di attività e aver eseguito correttamente un probe di avvio, Cloud Run invia una richiesta di controllo di integrità al servizio. Se un probe di attività non viene eseguito correttamente entro il tempo specificato ( failureThreshold * periodSeconds), il container viene arrestato utilizzando un segnale SIGKILL. Dopo l'arresto del container, la scalabilità automatica di Cloud Run avvia una nuova istanza del container. |
configura i probe di idoneità
Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Ai probe di idoneità si applicano le seguenti limitazioni:
Se attivi l'affinità sessione, Cloud Run continua a inviare richieste alla stessa istanza, anche se il controllo di idoneità non va a buon fine.
Se in precedenza hai configurato un probe di idoneità per il tuo servizio Cloud Run utilizzando l'API Cloud Run Admin v1 prima di novembre 2025, i controlli di idoneità non avranno effetto anche dopo il deployment di una nuova configurazione per quel servizio. Questo accade perché il servizio conserva una configurazione precedente. I servizi creati dopo novembre 2025 o quelli che non hanno mai utilizzato un probe di idoneità non sono interessati. Per abilitare i probe di idoneità supportati sui servizi interessati, segui questi passaggi:
Esegui il deployment di una nuova revisione che rimuova la definizione del probe di idoneità precedente.
Esegui il deployment di un'altra nuova revisione che aggiunge la definizione del probe di idoneità pertinente.
Questi passaggi cancellano qualsiasi configurazione precedente e attivano la funzionalità del probe di idoneità.
Puoi configurare un probe di idoneità utilizzando la console Google Cloud , Google Cloud CLI o YAML:
Console
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu di navigazione di Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Esegui il deployment del container e compila la pagina delle impostazioni iniziali del servizio. Quindi fai clic su Container, networking, sicurezza per espandere la pagina di configurazione del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio, quindi sulla scheda Container.
Nella sezione Controlli di integrità, fai clic su Aggiungi controllo di integrità per aprire il riquadro di configurazione Aggiungi controllo di integrità.
Dal menu Seleziona il tipo di controllo di integrità, seleziona Controllo di idoneità.
Dal menu Seleziona il tipo di probe, seleziona il tipo di probe che vuoi utilizzare, ad esempio HTTP o gRPC. Viene visualizzato il modulo di configurazione del probe.
La configurazione del probe varia in base al tipo di probe. Configura le impostazioni del probe:
Se utilizzi i probe HTTP:
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio
/startup,/healtho/are_you_ready) deve corrispondere apathnella configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.Utilizza il campo Percorso per specificare il percorso relativo dell'endpoint, ad esempio
/are_you_ready. Il percorso predefinito è/.
Se utilizzi i probe gRPC:
- Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
In Porta, specifica la porta del container per il servizio. La porta predefinita è la porta di ingresso principale.
In Periodo, specifica il periodo (in secondi) in cui eseguire il probe. Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 300. Il valore predefinito è 10 secondi.In Soglia di successo, specifica il numero minimo di successi consecutivi necessari affinché il probe venga considerato riuscito dopo un errore. Il valore predefinito è 2.
In Soglia di errore, specifica il numero di tentativi del probe prima di segnalare un errore, che comporta l'interruzione della ricezione del traffico da parte dell'istanza. Il valore predefinito è 3.
In Timeout, specifica 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 300. Il valore predefinito è 1.
Fai clic su Aggiungi per aggiungere la nuova soglia.
Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
Per eliminare un probe, fai clic sull'icona Elimina per il controllo di integrità che vuoi eliminare, quindi fai clic su Conferma. Per eseguire il deployment di una nuova revisione del servizio Cloud Run, fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche.
gcloud
Idoneità HTTP
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio /startup,
/health o /are_you_ready) deve corrispondere a path nella
configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.
Esegui questo comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--readiness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. PATH: il percorso relativo all'endpoint HTTP, ad esempio
/are_you_ready. Il percorso predefinito è/. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio. La porta predefinita è la porta di ingresso principale.
- Facoltativo. SUCCESS_THRESHOLD: il numero minimo di successi consecutivi necessari affinché il probe venga considerato riuscito dopo un errore. Il valore predefinito è 2.
- Facoltativo. FAILURE_THRESHOLD: il numero di tentativi del probe prima di segnalare un errore, che comporta l'interruzione della ricezione del traffico da parte dell'istanza. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: 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 300. Il valore predefinito è 1. - Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe.
Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 300. Il valore predefinito è 10 secondi.
Idoneità gRPC
Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
Esegui questo comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--readiness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio. La porta predefinita è la porta di ingresso principale.
- Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo del servizio di
grpc.health.v1.HealthCheckRequestquando viene chiamata la RPCgrpc.health.v1.Health.Check. - Facoltativo. SUCCESS_THRESHOLD: il numero minimo di successi consecutivi necessari affinché il probe venga considerato riuscito dopo un errore. Il valore predefinito è 2.
- Facoltativo. FAILURE_THRESHOLD: il numero di tentativi del probe prima di segnalare un errore, che comporta l'interruzione della ricezione del traffico da parte dell'istanza. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: 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 300. Il valore predefinito è 1. - Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe.
Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 300. Il valore predefinito è 10 secondi.
YAML
Idoneità HTTP
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio /startup,
/health o /are_you_ready) deve corrispondere a path nella
configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.
Configura l'attributo
readinessProbecome mostrato:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL readinessProbe: httpGet: path: PATH port: CONTAINER_PORT successThreshold: SUCCESS_THRESHOLD failureThreshold: FAILURE_THRESHOLD timeoutSeconds: TIMEOUT periodSeconds: PERIOD
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. PATH: il percorso relativo all'endpoint HTTP, ad esempio
/are_you_ready. Il percorso predefinito è/. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio. La porta predefinita è la porta di ingresso principale.
- Facoltativo. SUCCESS_THRESHOLD: il numero minimo di successi consecutivi necessari affinché il probe venga considerato riuscito dopo un errore. Il valore predefinito è 2.
- Facoltativo. FAILURE_THRESHOLD: il numero di tentativi del probe prima di segnalare un errore, che comporta l'interruzione della ricezione del traffico da parte dell'istanza. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: 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 300. Il valore predefinito è 1. - Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe.
Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 300. Il valore predefinito è 10 secondi.
Idoneità gRPC
Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
Configura l'attributo
readinessProbecome mostrato:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: spec: containers: - image: IMAGE_URL readinessProbe: grpc: port: CONTAINER_PORT service: GRPC_SERVICE successThreshold: SUCCESS_THRESHOLD failureThreshold: FAILURE_THRESHOLD timeoutSeconds: TIMEOUT periodSeconds: PERIOD
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio. La porta predefinita è la porta di ingresso principale.
- Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo del servizio di
grpc.health.v1.HealthCheckRequestquando viene chiamata la RPCgrpc.health.v1.Health.Check. - Facoltativo. SUCCESS_THRESHOLD: il numero minimo di successi consecutivi necessari affinché il probe venga considerato riuscito dopo un errore. Il valore predefinito è 2.
- Facoltativo. FAILURE_THRESHOLD: il numero di tentativi del probe prima di segnalare un errore, che comporta l'interruzione della ricezione del traffico da parte dell'istanza. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: 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 300. Il valore predefinito è 1. - Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe.
Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 300. Il valore predefinito è 10 secondi.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Idoneità HTTP
Aggiungi un endpoint HTTP/1 (l'impostazione predefinita di Cloud Run, non HTTP/2) nel codice del servizio per rispondere al probe. Il nome dell'endpoint (ad esempio /startup,
/health o /are_you_ready) deve corrispondere a path nella
configurazione del probe. Gli endpoint controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.
Configura il servizio Cloud Run con l'attributo readiness_probe come mostrato:
resource "google_cloud_run_v2_service" "default" { name = "SERVICE" location = "REGION" deletion_protection = false # set to "true" in production template { containers { image = "IMAGE_URL" readiness_probe { timeout_seconds = TIMEOUT period_seconds = PERIOD success_threshold = SUCCESS_THRESHOLD failure_threshold = FAILURE_THRESHOLD http_get { path = "PATH" port = CONTAINER_PORT } } } } }
Sostituisci quanto segue:
- REGION: la regione Google Cloud , ad esempio
us-central1. - SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. PATH: il percorso relativo all'endpoint HTTP, ad esempio
/are_you_ready. Il percorso predefinito è/. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio. La porta predefinita è la porta di ingresso principale.
- Facoltativo. SUCCESS_THRESHOLD: il numero minimo di successi consecutivi necessari affinché il probe venga considerato riuscito dopo un errore. Il valore predefinito è 2.
- Facoltativo. FAILURE_THRESHOLD: il numero di tentativi del probe prima di segnalare un errore, che comporta l'interruzione della ricezione del traffico da parte dell'istanza. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: 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 300. Il valore predefinito è 1. - Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe.
Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 300. Il valore predefinito è 10 secondi.
Idoneità gRPC
Assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC.
Configura il servizio Cloud Run con l'attributo readiness_probe come mostrato:
resource "google_cloud_run_v2_service" "default" { name = "SERVICE" location = "REGION" deletion_protection = "true" template { containers { image = "IMAGE_URL" readiness_probe { timeout_seconds = TIMEOUT period_seconds = PERIOD success_threshold = SUCCESS_THRESHOLD failure_threshold = FAILURE_THRESHOLD grpc { service = "GRPC_SERVICE" port = CONTAINER_PORT } } } } }
Sostituisci quanto segue:
- REGION: la regione Google Cloud , ad esempio
us-central1. - SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio. La porta predefinita è la porta di ingresso principale.
- Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo del servizio di
grpc.health.v1.HealthCheckRequestquando viene chiamata la RPCgrpc.health.v1.Health.Check. - Facoltativo. SUCCESS_THRESHOLD: il numero minimo di successi consecutivi necessari affinché il probe venga considerato riuscito dopo un errore. Il valore predefinito è 2.
- Facoltativo. FAILURE_THRESHOLD: il numero di tentativi del probe prima di segnalare un errore, che comporta l'interruzione della ricezione del traffico da parte dell'istanza. Il valore predefinito è 3.
- Facoltativo. TIMEOUT: 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 300. Il valore predefinito è 1. - Facoltativo. PERIOD: il periodo (in secondi) in cui eseguire il probe.
Ad esempio,
2per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 300. Il valore predefinito è 10 secondi.
Requisiti e comportamento del probe di idoneità
| Tipo di probe | Requisiti | Comportamento |
|---|---|---|
| Idoneità HTTP | Crea un endpoint di controllo di integrità HTTP Utilizza HTTP/1 |
Il probe di idoneità viene avviato solo dopo che il probe di avvio è stato eseguito correttamente. Dopo la configurazione del probe e l'esito positivo di un eventuale probe di avvio, Cloud Run invia una richiesta GET HTTP all'endpoint del controllo di integrità (ad esempio /are_you_ready). Qualsiasi risposta 2XX o 3XX indica un esito positivo, mentre qualsiasi altra risposta indica un errore.Se un'istanza non supera il probe di idoneità oltre il valore failureThreshold configurato, Cloud Run interrompe il routing delle nuove richieste all'istanza senza arrestarla e riprende il routing delle richieste una volta che l'istanza supera il probe di idoneità (successThreshold volte consecutive). |
| Idoneità gRPC | Implementa il protocollo di controllo di integrità gRPC nel tuo servizio Cloud Run | Il probe di idoneità viene avviato solo dopo che l'eventuale probe di avvio configurato è stato eseguito correttamente. Cloud Run invia una richiesta di controllo di integrità gRPC al servizio. Se un'istanza non supera il probe di idoneità oltre il valore failureThreshold configurato, Cloud Run interrompe il routing delle nuove richieste all'istanza senza arrestarla e riprende il routing delle richieste una volta che l'istanza supera il probe di idoneità (successThreshold volte consecutive). |
Allocazione della CPU
- La CPU è sempre allocata durante l'esecuzione dei probe.
- Tutti i probe vengono fatturati in base al consumo di CPU e memoria utilizzata, ma non è previsto alcun addebito basato sulle richieste.
Passaggi successivi
- Scopri come configurare un protocollo di controllo di integrità gRPC.
- Automatizza il failover tra regioni con Service Health di Cloud Run.