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.

    • Il riavvio di un container in questo caso 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 policy dell'organizzazione personalizzate.
  • 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 che il container è stato avviato, 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 l'esito positivo 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 è considerata riuscita, mentre tutte le altre indicano un errore.

Se un probe di attività non va a buon fine 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 la console Google Cloud o l'API REST di Cloud Run:

Console

  1. Nella console Google Cloud , vai a Cloud Run:

    Vai a Cloud Run

  2. Seleziona Pool di worker dal menu.

    • Se stai configurando un nuovo worker pool, fai clic su Esegui il deployment del container.
    • Se stai configurando un pool di worker esistente, selezionalo e poi fai clic su Modifica ed esegui il deployment della nuova revisione.
  3. Se stai configurando un nuovo pool di worker, compila la pagina iniziale del pool di worker, poi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione dei pool di worker.

  4. Nella sezione Container, vai a Controlli di integrità e fai clic su Aggiungi controllo di integrità per aprire il pannello di configurazione Aggiungi controllo di integrità.

  5. Nel menu Seleziona il tipo di controllo di integrità, seleziona il tipo di controllo di integrità che vuoi aggiungere.

  6. Nel menu Seleziona tipo di probe, seleziona il tipo di probe che vuoi utilizzare, ad esempio HTTP o gRPC. Viene visualizzato il modulo di configurazione del probe.

  7. Configura le impostazioni del probe, che variano in base al tipo di probe:

    • Se utilizzi 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. 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.

    • Se utilizzi probe gRPC, assicurati che l'immagine container implementi il protocollo di controllo di integrità gRPC. Per saperne di più, consulta GRPC Health Checking Protocol.

    • Per i tipi di probe HTTP e gRPC, specifica quanto segue:

      • Ritardo iniziale, specifica il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 secondi e 240 secondi. Il valore predefinito è 0 secondi.

      • Periodo, specifica il periodo (in secondi) in cui eseguire il probe. Ad esempio, specifica 2 per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 240 secondi. Il valore predefinito è 10 secondi.

      • Soglia di errore, specifica il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.

      • Timeout, specifica il numero di secondi di attesa prima del timeout del probe. Specifica un valore compreso tra 1 e il valore più piccolo tra 240 e periodSeconds. Il valore predefinito è 1.

  8. Fai clic su Aggiungi per aggiungere la nuova soglia.

  9. Fai clic su Crea o Esegui il deployment.

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 tuo 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:

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.