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.
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.