Configurare i controlli di integrità dei container per i servizi

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 il momento in cui il container è pronto a ricevere richieste e quando deve essere considerato non integro per richiedere un riavvio.

Casi d'uso

Puoi configurare i seguenti tipi di probe di 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 che i container vengano chiusi prematuramente prima che siano operativi.
  • I probe di attività determinano se riavviare un container.

    • In questo caso, il riavvio di un container può aumentare la disponibilità del servizio 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 un servizio è in esecuzione, ma non è in grado di avanzare. Puoi richiedere un sondaggio di vivacità per ogni container utilizzando policy dell'organizzazione personalizzate.
    • Quando un servizio riscontra ripetuti errori di probe, Cloud Run limita i riavvii delle istanze per evitare loop di arresto anomalo incontrollati.
  • Probe di idoneità (anteprima)

    I probe di idoneità determinano quando un'istanza nel servizio Cloud Run deve gestire il traffico. I controlli di idoneità iniziano dopo che il probe di avvio del container è stato superato correttamente. Se un'istanza non supera il probe di preparazione oltre il valore della soglia di errore che configuri, Cloud Run smette di inviare nuovo traffico. Cloud Run non termina l'istanza e invia di nuovo il traffico all'istanza quando questa inizia a superare di nuovo il probe di idoneità.

Configurare i probe di avvio

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, YAML o Terraform: Google Cloud

Console

  1. Nella console Google Cloud , vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Per un nuovo servizio, espandi Container, volumi, networking, sicurezza per visualizzare le opzioni di controllo di integrità'integrità. Per un servizio esistente, fai clic sul servizio che vuoi configurare, quindi fai clic su Modifica e implementa per visualizzare le opzionicontrollo di integritàl'integrità.

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

  4. Nel menu Seleziona il tipo di controllo di integrità, seleziona Controllo all'avvio.

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

  6. La configurazione del probe varia in base al tipo di probe. Configura le impostazioni del probe:

    • Se utilizzi probe HTTP:

      • Aggiungi un endpoint HTTP/1 (il valore predefinito 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 di 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 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:

    • In Porta, specifica la porta del container utilizzata per il servizio.

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

    • Per Periodo, specifica 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 e 240 secondi. Il valore predefinito è 10 secondi.

    • Per 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 240. Il valore predefinito è 1.

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

  8. Fai clic su Crea o Esegui il deployment.

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 del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio.
  • DELAY: numero di secondi di attesa dopo l'avvio del container prima dell'esecuzione del primo probe. Specifica un valore compreso tra 0 e 240 secondi. Il valore predefinito è 0 secondi.
  • Facoltativo. TIMEOUT: il numero di secondi da attendere prima che il probe scada. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 240. Il valore predefinito è 1.
  • THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
  • PERIOD: 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.

Avvio HTTP

Aggiungi un endpoint HTTP/1 (il valore predefinito 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 di 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 del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-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 240 secondi. 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 da attendere prima del time out 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. PERIOD: 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.

Avvio di gRPC

Assicurati che l'immagine container implementi il protocollocontrollo 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 del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo service di grpc.health.v1.HealthCheckRequest quando viene chiamato l'RPC grpc.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 dell'esecuzione del primo probe. Specifica un valore compreso tra 0 e 240 secondi. 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 da attendere prima del time out 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. PERIOD: 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.

YAML

Avvio TCP

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. 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:
             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 del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Facoltativo. CONTAINER_PORT: la porta del container utilizzata per il servizio.
    • DELAY: numero di secondi di attesa dopo l'avvio del container prima dell'esecuzione del primo probe. Specifica un valore compreso tra 0 e 240 secondi. Il valore predefinito è 0 secondi.
    • Facoltativo. TIMEOUT: il numero di secondi da attendere prima che il probe scada. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 240. Il valore predefinito è 1.
    • THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
    • PERIOD: 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.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Avvio HTTP

Aggiungi un endpoint HTTP/1 (il valore predefinito 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 di controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. 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 quanto segue:

    • SERVICE: il nome del servizio Cloud Run.
    • IMAGE_URL: un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-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 240 secondi. Il valore predefinito è 0 secondi.
    • Facoltativo. THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
    • Facoltativo: httpHeaders può 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 da attendere prima del time out 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. PERIOD: 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.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Avvio di gRPC

Assicurati che l'immagine container implementi il protocollocontrollo di integritàà gRPC.

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. 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 quanto segue:

    • SERVICE: il nome del servizio Cloud Run.
    • IMAGE_URL: un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo service di grpc.health.v1.HealthCheckRequest quando viene chiamato l'RPC grpc.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 dell'esecuzione del primo probe. Specifica un valore compreso tra 0 e 240 secondi. 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 da attendere prima del time out 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. PERIOD: 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.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

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:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        tcp_socket {
          port = 8080
        }
      }
    }
  }
}

Avvio HTTP

Aggiungi un endpoint HTTP/1 (il valore predefinito 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 di 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:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        http_get {
          path = "/"
          # Custom headers to set in the request
          # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#http_headers
          http_headers {
            name  = "Access-Control-Allow-Origin"
            value = "*"
          }
        }
      }
    }
  }
}

Avvio di 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:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    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"
        }
      }
    }
  }
}

Probe di avvio TCP predefinito

Se non configuri esplicitamente un probe di avvio TCP per un nuovo servizio Cloud Run, Cloud Run configura automaticamente un probe di avvio TCP con i seguenti valori predefiniti:

startupProbe:
          timeoutSeconds: 240
          periodSeconds: 240
          failureThreshold: 1

Puoi modificare questi valori predefiniti seguendo le istruzioni riportate nella sezione Configurazione del probe di questa pagina.

Requisiti e comportamento del probe di avvio

Tipo di sonda Requisiti Comportamento
Avvio TCP Nessuno Per impostazione predefinita, 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 (failureThreshold * periodSeconds), che non può superare i 240 secondi, il container viene arrestato. Vedi 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 HTTP GET all'endpoint del controllo di integrità (ad esempio, /health). Qualsiasi risposta 2XX o 3XX è considerata riuscita, mentre tutte le altre indicano un errore.

Se un probe di avvio non riesce entro il tempo specificato (failureThreshold * periodSeconds), che non può superare i 240 secondi, il container viene arrestato.

Se il probe di avvio HTTP riesce entro il tempo specificato e hai configurato un probe di attività HTTP, quest'ultimo viene avviato.
Avvio di 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 240 secondi, il container viene arrestato.

configura probe di attività

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 e gRPC utilizzando la console Google Cloud , YAML o Terraform:

Console

  1. Nella console Google Cloud , vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Per un nuovo servizio, espandi Container, volumi, networking, sicurezza per visualizzare le opzioni di controllo di integrità'integrità. Per un servizio esistente, fai clic sul servizio che vuoi configurare, quindi fai clic su Modifica e implementa per visualizzare le opzionicontrollo di integritàl'integrità.

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

  4. Nel menu Seleziona il tipo di controllo di integrità, seleziona Controllo dell'identità.

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

  6. La configurazione del probe varia in base al tipo di probe. Configura le impostazioni del probe:

    • Se utilizzi probe HTTP:

      • Aggiungi un endpoint HTTP/1 (il valore predefinito 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 di 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 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:

    • In Porta, specifica la porta del container utilizzata per il servizio.

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

    • Per Periodo, specifica 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 e 3600 secondi. Il valore predefinito è 10 secondi.

    • Per 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 3600. Il valore predefinito è 1.

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

  8. Fai clic su Crea o Esegui il deployment.

gcloud

Liveness HTTP

Aggiungi un endpoint HTTP/1 (il valore predefinito 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 di 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 del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-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 dell'esecuzione del primo probe. Specifica un valore compreso tra 0 e 240 secondi. 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 da attendere prima del time out 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, 2 per 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 del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo service di grpc.health.v1.HealthCheckRequest quando viene chiamato l'RPC grpc.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 dell'esecuzione del primo probe. Specifica un valore compreso tra 0 e 240 secondi. 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 da attendere prima del time out 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, 2 per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 3600 secondi. Il valore predefinito è 10 secondi.

YAML

Liveness HTTP

Aggiungi un endpoint HTTP/1 (il valore predefinito 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 di controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. 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 quanto segue:

    • SERVICE: il nome del servizio Cloud Run.
    • IMAGE_URL: un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-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 240 secondi. Il valore predefinito è 0 secondi.
    • Facoltativo. THRESHOLD: il numero di tentativi del probe prima di arrestare il container. Il valore predefinito è 3.
    • Facoltativo: httpHeaders può 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 da attendere prima del time out 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, 2 per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 3600 secondi. Il valore predefinito è 10 secondi.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Attività gRPC

Assicurati che l'immagine container implementi il protocollocontrollo di integritàà gRPC.

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. 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 quanto segue:

    • SERVICE: il nome del servizio Cloud Run.
    • IMAGE_URL: un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Facoltativo. GRPC_SERVICE: se impostato, questo valore viene utilizzato nel campo service di grpc.health.v1.HealthCheckRequest quando viene chiamato l'RPC grpc.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 dell'esecuzione del primo probe. Specifica un valore compreso tra 0 e 240 secondi. 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 da attendere prima del time out 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, 2 per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 secondo e 3600 secondi. Il valore predefinito è 10 secondi.

  3. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Liveness HTTP

Aggiungi un endpoint HTTP/1 (il valore predefinito 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 di 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:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      liveness_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        http_get {
          path = "/"
          # Custom headers to set in the request
          # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#http_headers
          http_headers {
            name  = "Access-Control-Allow-Origin"
            value = "*"
          }
        }
      }
    }
  }
}

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:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      # Note: Change to the name of your image
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      liveness_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        # Note: Change to the name of your pre-existing grpc health status service
        grpc {
          service = "grpc.health.v1.Health"
        }
      }
    }
  }
}

Requisiti e comportamento del probe di attività

Tipo di sonda Requisiti Comportamento
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 2XX o 3XX è considerata riuscita, mentre tutte le altre indicano un errore.

Se un probe di attività non riesce entro il tempo specificato (failureThreshold * periodSeconds), il container viene arrestato utilizzando un segnale SIGKILL. Le richieste rimanenti ancora gestite dal container vengono terminate con il codice di stato HTTP 503. Dopo l'arresto del container, lo scalabilità automatica di Cloud Run avvia una nuova istanza 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 il completamento del probe di avvio.

Dopo aver configurato il probe di attività e completato il probe di avvio, Cloud Run invia una richiesta di controllo di integrità al servizio.

Se un probe di attività non viene completato entro il tempo specificato (failureThreshold * periodSeconds), il container viene arrestato utilizzando un segnale SIGKILL. Dopo l'arresto del container, lo scalabilità automatica di Cloud Run avvia una nuova istanza container.

configura i probe di idoneità

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.

Alle probe di readiness 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.

  • Cloud Run potrebbe inviare richieste a un'istanza appena avviata prima che il probe di idoneità venga completato per la prima volta.

  • 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 il servizio. Ciò si verifica perché il servizio conserva una configurazione precedente. I servizi che crei dopo novembre 2025 o quelli che non hanno mai utilizzato un probe di readiness non sono interessati. Per attivare i probe di preparazione supportati sui servizi interessati:

    1. Esegui il deployment di una nuova revisione che rimuove la definizione precedente del probe di preparazione.

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

  1. Nella console Google Cloud , vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Per un nuovo servizio, espandi Container, volumi, networking, sicurezza per visualizzare le opzioni di controllo di integrità'integrità. Per un servizio esistente, fai clic sul servizio che vuoi configurare, quindi fai clic su Modifica e implementa per visualizzare le opzionicontrollo di integritàl'integrità.

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

  4. Nel menu Seleziona il tipo di controllo di integrità, seleziona Controllo di idoneità.

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

  6. La configurazione del probe varia in base al tipo di probe. Configura le impostazioni del probe:

    • Se utilizzi probe HTTP:

      • Aggiungi un endpoint HTTP/1 (il valore predefinito 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 di 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 all'endpoint, ad esempio /are_you_ready. Il percorso predefinito è /.

    • Se utilizzi probe gRPC:

    • In Porta, specifica la porta del container per il tuo servizio. La porta predefinita è la porta di ingresso principale.

    • Per Periodo, specifica 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 e 300. Il valore predefinito è 10 secondi.

    • Per Soglia di successo, specifica il numero minimo di successi consecutivi affinché il probe venga considerato riuscito dopo un errore. Il valore predefinito è 2.

    • Per Soglia di errore, specifica il numero di tentativi del probe prima di segnalare un errore, il che fa sì che l'istanza smetta di ricevere traffico. Il valore predefinito è 3.

    • Per Timeout, specifica il numero di secondi da attendere prima che il probe vada in timeout. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 300. Il valore predefinito è 1.

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

  8. Fai clic su Crea o Esegui il deployment.

gcloud

Idoneità HTTP

Aggiungi un endpoint HTTP/1 (il valore predefinito 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 di 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 beta 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 del 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 la forma LOCATION-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 fa sì che l'istanza smetta di ricevere traffico. Il valore predefinito è 3.
  • Facoltativo. TIMEOUT: il numero di secondi da attendere prima del time out 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, 2 per 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 beta 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 del 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 la forma LOCATION-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 service di grpc.health.v1.HealthCheckRequest quando viene chiamato grpc.health.v1.Health.Check RPC.
  • 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 fa sì che l'istanza smetta di ricevere traffico. Il valore predefinito è 3.
  • Facoltativo. TIMEOUT: il numero di secondi da attendere prima del time out 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, 2 per 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 (il valore predefinito 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 di controllo di integrità HTTP sono accessibili esternamente e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura l'attributo readinessProbe come 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:
              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 del 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 la forma LOCATION-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 fa sì che l'istanza smetta di ricevere traffico. Il valore predefinito è 3.
    • Facoltativo. TIMEOUT: il numero di secondi da attendere prima del time out 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, 2 per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 300. Il valore predefinito è 10 secondi.

  3. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Idoneità gRPC

Assicurati che l'immagine container implementi il protocollocontrollo di integritàà gRPC.

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura l'attributo readinessProbe come 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 del 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 la forma LOCATION-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 service di grpc.health.v1.HealthCheckRequest quando viene chiamato grpc.health.v1.Health.Check RPC.
    • 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 fa sì che l'istanza smetta di ricevere traffico. Il valore predefinito è 3.
    • Facoltativo. TIMEOUT: il numero di secondi da attendere prima del time out 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, 2 per eseguire il probe ogni 2 secondi. Specifica un valore compreso tra 1 e 300. Il valore predefinito è 10 secondi.

  3. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Allocazione della CPU

  • La CPU è sempre allocata quando vengono eseguite le sonde.
  • Tutti i probe vengono fatturati in base al consumo di CPU e memoria, ma non è previsto alcun addebito basato sulle richieste.

Passaggi successivi