Configura i controlli di integrità dei container per i pool di worker

Puoi configurare probe di avvio HTTP, TCP e gRPC, nonché probe di attività HTTP e gRPC per i pool di worker Cloud Run nuovi ed esistenti. La configurazione varia a seconda del tipo di sonda.

Casi d'uso

Puoi configurare due tipi di probe di controllo di integrità:

  • I probe di attività determinano se riavviare un container.

    • In questo caso, il riavvio di un container può aumentare la disponibilità del pool di worker in caso di bug.
    • I probe di attività hanno lo scopo di riavviare le singole istanze che non possono essere recuperate in altro modo. Devono essere utilizzati principalmente per errori irreversibili dell'istanza, ad esempio per rilevare un deadlock in cui è in esecuzione un pool di worker, ma non è possibile fare progressi. Puoi richiedere un probe di attività per ogni contenitore utilizzando criteri dell'organizzazione personalizzati.
  • I probe di avvio determinano se il container è stato avviato.

    • Quando configuri un probe di avvio, i controlli di attività vengono disattivati finché il probe di avvio non determina l'avvio del container, per evitare interferenze con l'avvio del pool di worker.
    • I probe di avvio sono particolarmente utili se utilizzi i controlli di attività su container con avvio lento, perché impediscono che vengano chiusi prematuramente prima che siano operativi.

Tieni presente che quando un pool di worker riscontra ripetuti errori di avvio o del probe di attività, Cloud Run impedisce loop di arresto anomalo incontrollati limitando i riavvii delle istanze.

Allocazione della CPU

  • La CPU è sempre allocata quando vengono eseguite le sonde.
  • Tutti i probe vengono fatturati in base al consumo di utilizzo di CPU e memoria.

Requisiti e comportamento del probe

Tipo di sonda Requisiti Comportamento
Avvio TCP Nessuno Se specificato, Cloud Run crea 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, Cloud Run arresta il container. Il tempo è un massimo di 240 secondi, calcolato come failureThreshold * periodSeconds, che imposti durante la configurazione del probe di avvio per il pool di worker.
Avvio HTTP Crea un endpoint di controllo di integrità HTTP
Utilizza HTTP/1
Dopo la configurazione del probe, Cloud Run invia una richiesta HTTP GET all'endpoint di controllo dell'integrità del pool di worker (ad esempio, /ready). Qualsiasi risposta compresa tra 200 e 400 indica esito positivo, tutto il resto indica esito negativo.

Se un probe di avvio non va a buon fine entro il tempo specificato (failureThreshold * periodSeconds), che non può superare i 240 secondi, Cloud Run arresta il container.

Se il probe di avvio HTTP va a buon fine entro il tempo specificato e hai configurato un probe di attività HTTP, Cloud Run avvia il probe di attività HTTP.
Liveness HTTP Crea un endpoint di controllo di integrità HTTP
Utilizza HTTP/1
Il probe di attività inizia solo dopo che il probe di avvio ha avuto esito positivo. Dopo la configurazione del probe e il completamento di qualsiasi probe di avvio, Cloud Run invia una richiesta HTTP GET all'endpoint del controllo di integrità (ad esempio, /health). Qualsiasi risposta compresa tra 200 e 400 indica esito positivo, tutto il resto indica esito negativo.

Se un probe di attività non riesce entro il tempo specificato (failureThreshold * periodSeconds), Cloud Run arresta il container utilizzando un segnale SIGKILL. Le richieste rimanenti ancora gestite dal container vengono terminate con il codice di stato HTTP 503. Dopo che Cloud Run arresta il container, lo scale automatico di Cloud Run avvia una nuova istanza container.
Avvio di gRPC Implementa il protocollo di controllo di integrità gRPC nel pool di worker Cloud Run Se un probe di avvio non viene completato entro il tempo specificato (failureThreshold * periodSeconds), che non può superare i 240 secondi, Cloud Run arresta il container.
Attività gRPC Implementa il protocollo di controllo di integrità gRPC nel pool di worker Cloud Run Se configuri un probe di avvio gRPC, il probe di attività viene avviato solo dopo che il probe di avvio ha avuto esito positivo.

Dopo aver configurato il probe di attività e dopo che il probe di avvio ha avuto esito positivo, Cloud Run invia una richiesta di controllo di integrità al pool di worker.

Se un probe di attività non ha esito positivo entro il tempo specificato (failureThreshold * periodSeconds), Cloud Run arresta il container utilizzando un segnale SIGKILL. Dopo che Cloud Run arresta il container, lo scale automatico di Cloud Run avvia una nuova istanza container.

Configura probe

Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che tu non apporti aggiornamenti espliciti per modificarla.

Puoi configurare i probe HTTP, TCP e gRPC utilizzando l'API REST di Cloud Run:

API REST

Importante: se configuri il pool di worker Cloud Run per i probe HTTP, devi anche aggiungere un controllo di integrità dell'integrità HTTP nel codice del pool di worker per rispondere al probe. Se stai configurando un probe gRPC, devi anche implementare il protocollo di controllo di integrità gRPC nel pool di worker Cloud Run.

Avvio HTTP

Utilizza l'API REST per configurare questa impostazione.

Liveness HTTP

Utilizza l'API REST per configurare questa impostazione.

Avvio di gRPC

Utilizza l'API REST per configurare questa impostazione.

Attività gRPC

Utilizza l'API REST per configurare questa impostazione.

Crea endpoint di controllo di integrità HTTP

Se configuri il pool di worker Cloud Run per un probe di avvio HTTP o un probe di attività, devi aggiungere un endpoint nel codice del pool di worker per rispondere al probe. L'endpoint può avere il nome che preferisci, ad esempio /startup o /ready, ma il nome deve corrispondere al valore specificato per path nella configurazione del probe. Ad esempio, se specifichi /ready per un probe di avvio HTTP, specifica path nella configurazione del probe come mostrato di seguito:

startupProbe:
  httpGet:
    path: /ready

Gli endpoint di controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint HTTP esposto esternamente.