As verificações de integridade do Cloud Run garantem que as instâncias de contêiner estejam sendo executadas corretamente e possam disponibilizar tráfego. Com as verificações de integridade do Cloud Run, é possível personalizar quando o contêiner está pronto para receber solicitações e quando ele deve ser considerado não íntegro para exigir uma reinicialização.
Casos de uso
É possível configurar os seguintes tipos de sondagens de verificação de integridade:
- As sondagens de inicialização determinam se o contêiner foi iniciado e está pronto para aceitar o tráfego.
- As sondagens de atividade determinam se é necessário reiniciar um
contêiner.
- A reinicialização de um contêiner nesse caso pode aumentar a disponibilidade da instância em caso de bugs.
- As sondagens de atividade têm como objetivo reiniciar instâncias individuais que não podem ser recuperadas de nenhuma outra forma. Eles são usados principalmente para falhas irrecuperáveis de instâncias, como capturar um impasse em que uma instância está em execução, mas não consegue progredir. É possível exigir uma sondagem de atividade para cada contêiner usando políticas de organização personalizadas.
- Quando uma instância passa por falhas repetidas de sondagem, o Cloud Run limita as reinicializações de instâncias para evitar loops de falha incontrolados.
Sondagens de prontidão (prévia)
As sondagens de prontidão determinam quando uma instância no Cloud Run deve atender o tráfego. As verificações de prontidão começam depois que a sondagem de inicialização do contêiner é concluída. Se uma instância falhar na sondagem de prontidão além do valor de limite de falha configurado, o Cloud Run vai parar de enviar novo tráfego para ela. O Cloud Run não encerra a instância e envia o tráfego de volta para ela quando começa a passar na sondagem de prontidão novamente.
Seu contêiner precisa implementar as sondagens de inicialização, atividade e prontidão de forma consistente. Quando a verificação de inicialização é aprovada, o Cloud Run considera o contêiner pronto para atender ao tráfego.
Recomendamos que você encapsule sua lógica para que a sondagem de inicialização considere a prontidão. Como o Cloud Run pode rotear o tráfego para uma nova instância antes da conclusão da primeira sondagem de prontidão, verifique se a aprovação da sondagem de inicialização também garante a prontidão para veicular o tráfego com segurança imediatamente. Quando a sondagem de inicialização é bem-sucedida, tratamos o contêiner como pronto para receber tráfego.
Configurar sondagens de inicialização
É possível configurar sondagens HTTP, TCP e gRPC usando a Google Cloud CLI ou YAML:
gcloud
inicialização do TCP
Execute este comando:
gcloud beta run instances create INSTANCE \
--image=IMAGE_URL \
--startup-probe tcpSocket.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - CONTAINER_PORT (opcional): a porta do contêiner usada para sua instância.
- DELAY: número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
- TIMEOUT (opcional): o número de segundos de espera até que a sondagem
expire. Este valor não pode exceder o valor especificado para
periodSeconds. Especifique um valor entre 1 e 240. O padrão é 1. - THRESHOLD: o número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
- PERIOD: período (em segundos) em que a sondagem deve ser feita.
Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
Inicialização HTTP
Adicione um endpoint HTTP/1 (o padrão do Cloud Run, não HTTP/2) no código da instância para responder à sondagem. O nome do endpoint (por exemplo, /startup,
/health ou /are_you_ready) precisa corresponder ao path na
configuração da sondagem. Os endpoints de verificação de integridade HTTP são acessíveis externamente
e seguem os mesmos princípios de qualquer outro endpoint de instância HTTP exposto externamente.
Execute este comando:
gcloud beta run instances create INSTANCE \
--image=IMAGE_URL \
--startup-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: um caminho relativo para o endpoint HTTP, por exemplo,
/health. - CONTAINER_PORT (opcional): defina como a porta do contêiner usada para sua instância.
- DELAY (opcional): o número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
- THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
- TIMEOUT (opcional): o número de segundos de espera até que a sondagem expire. Esse valor não pode exceder o valor especificado para periodSeconds. Especifique um valor entre 1 e 240. O padrão é 1.
- PERIOD (opcional): o período (em segundos) em que a sondagem deve ser feita. Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
Inicialização do gRPC
Verifique se a imagem do contêiner implementa o protocolo de verificação de integridade do gRPC.
Execute este comando:
gcloud beta run instances create INSTANCE \
--image=IMAGE_URL \
--startup-probe grpc.port=CONTAINER_PORT,grpc.instance=GRPC_INSTANCE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - GRPC_INSTANCE (opcional): se definido, será usado no campo "instance" do
grpc.health.v1.HealthCheckRequestquando a RPCgrpc.health.v1.Health.Checkfor chamada. - CONTAINER_PORT (opcional): a porta do contêiner usada para sua instância.
- DELAY (opcional): o número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
- THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
- TIMEOUT (opcional): o número de segundos de espera até que a sondagem expire. Esse valor não pode exceder o valor especificado para periodSeconds. Especifique um valor entre 1 e 240. O padrão é 1.
- PERIOD (opcional): o período (em segundos) em que a sondagem deve ser feita. Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
YAML
inicialização do TCP
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Configure o atributo
startupProbecomo mostrado:apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - image: IMAGE_URL startupProbe: tcpSocket: port: CONTAINER_PORT initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - CONTAINER_PORT (opcional): a porta do contêiner usada para sua instância.
- DELAY: número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
- TIMEOUT (opcional): o número de segundos de espera até que a sondagem
expire. Este valor não pode exceder o valor especificado para
periodSeconds. Especifique um valor entre 1 e 240. O padrão é 1. - THRESHOLD: o número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
- PERIOD: período (em segundos) em que a sondagem deve ser feita.
Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
-
Crie ou atualize a instância usando o seguinte comando:
gcloud beta run instances replace instance.yaml
Inicialização HTTP
Adicione um endpoint HTTP/1 (o padrão do Cloud Run, não HTTP/2) no código da instância para responder à sondagem. O nome do endpoint (por exemplo, /startup,
/health ou /are_you_ready) precisa corresponder ao path na
configuração da sondagem. Os endpoints de verificação de integridade HTTP são acessíveis externamente
e seguem os mesmos princípios de qualquer outro endpoint de instância HTTP exposto externamente.
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Configure o atributo
startupProbecomo mostrado:apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA 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
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: um caminho relativo para o endpoint HTTP, por exemplo,
/health. - CONTAINER_PORT (opcional): defina como a porta do contêiner usada para sua instância.
- DELAY (opcional): o número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
- THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
- Opcional:
httpHeaderspode ser usado para fornecer vários cabeçalhos personalizados ou repetidos usando os campos HEADER_NAME e HEADER_VALUE, conforme mostrado. - TIMEOUT (opcional): o número de segundos de espera até que a sondagem expire. Esse valor não pode exceder o valor especificado para periodSeconds. Especifique um valor entre 1 e 240. O padrão é 1.
- PERIOD (opcional): o período (em segundos) em que a sondagem deve ser feita. Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Inicialização do gRPC
Verifique se a imagem do contêiner implementa o protocolo de verificação de integridade do gRPC.
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Configure o atributo
startupProbecomo mostrado:apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - image: IMAGE_URL startupProbe: grpc: instance: GRPC_INSTANCE port: CONTAINER_PORT initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - GRPC_INSTANCE (opcional): se definido, será usado no campo "instance" do
grpc.health.v1.HealthCheckRequestquando a RPCgrpc.health.v1.Health.Checkfor chamada. - CONTAINER_PORT (opcional): a porta do contêiner usada para sua instância.
- DELAY (opcional): o número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
- THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
- TIMEOUT (opcional): o número de segundos de espera até que a sondagem expire. Esse valor não pode exceder o valor especificado para periodSeconds. Especifique um valor entre 1 e 240. O padrão é 1.
- PERIOD (opcional): o período (em segundos) em que a sondagem deve ser feita. Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
A sondagem de inicialização TCP padrão
Se você não configurar explicitamente uma sondagem de inicialização TCP para uma nova instância do Cloud Run, o Cloud Run vai configurar automaticamente uma sondagem de inicialização TCP com os seguintes valores padrão:
startupProbe:
timeoutSeconds: 240
periodSeconds: 240
failureThreshold: 1
Altere esses valores padrão seguindo as instruções na seção de configuração de sondagem nesta página.
Requisitos e comportamento da sondagem de inicialização
| Tipo de sondagem | Requisitos | Comportamento |
|---|---|---|
| inicialização do TCP | Nenhum | Por padrão, o Cloud Run faz uma conexão TCP para abrir o soquete TCP na porta especificada. Se o Cloud Run não conseguir estabelecer uma conexão, isso indica uma falha. Se uma sondagem de inicialização não for bem-sucedida dentro do tempo especificado ( failureThreshold * periodSeconds), que não pode exceder 240 segundos, o contêiner é desligado. Consulte também Padrões de TCP. |
| Inicialização HTTP | Crie um endpoint de verificação de integridade HTTP Use HTTP/1 |
Após a configuração da sondagem, o Cloud Run faz uma solicitação GET HTTP para o endpoint de verificação de integridade (por exemplo, /health). Qualquer resposta 2XX ou 3XX indica sucesso, e todo o restante indica falha.Se uma sondagem de inicialização não for bem-sucedida dentro do tempo especificado ( failureThreshold * periodSeconds), que não pode exceder 240 segundos, o contêiner será desligado. |
| Inicialização do gRPC | Implemente o protocolo de verificação de integridade do gRPC na instância do Cloud Run. | Se uma sondagem de inicialização não for bem-sucedida dentro do tempo especificado
(failureThreshold * periodSeconds), que não pode exceder
240 segundos, o contêiner será encerrado. |
configurar sondagens de atividade
É possível configurar sondagens HTTP e gRPC usando o SDK Google Cloud ou YAML:
gcloud
Atividade HTTP
Adicione um endpoint HTTP/1 (o padrão do Cloud Run, não HTTP/2) no código da instância para responder à sondagem. O nome do endpoint (por exemplo, /startup,
/health ou /are_you_ready) precisa corresponder ao path na
configuração da sondagem. Os endpoints de verificação de integridade HTTP são acessíveis externamente
e seguem os mesmos princípios de qualquer outro endpoint de instância HTTP exposto externamente.
Execute este comando:
gcloud beta run instances deploy INSTANCE \
--image=IMAGE_URL \
--liveness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: um caminho relativo para o endpoint HTTP, por exemplo,
/health. - CONTAINER_PORT (opcional): defina como a porta do contêiner usada para sua instância.
- DELAY (opcional): o número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
- THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
- Opcional. TIMEOUT: o número de segundos de espera até que a sondagem expire. Este valor não pode exceder o valor especificado para
periodSeconds. Especifique um valor entre 1 e 3600.O padrão é 1. - Opcional. PERIOD: o período (em segundos) em que a sondagem deve ser feita. Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 3600 segundos. O valor padrão é de 10 segundos.
Ativação do gRPC
Verifique se a imagem do contêiner implementa o protocolo de verificação de integridade do gRPC.
Execute este comando:
gcloud beta run instances deploy INSTANCE \
--image=IMAGE_URL \
--liveness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - GRPC_INSTANCE (opcional): se definido, será usado no campo "instance" do
grpc.health.v1.HealthCheckRequestquando a RPCgrpc.health.v1.Health.Checkfor chamada. - CONTAINER_PORT (opcional): a porta do contêiner usada para sua instância.
- DELAY (opcional): o número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
- THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
- Opcional. TIMEOUT: o número de segundos de espera até que a sondagem expire. Este valor não pode exceder o valor especificado para
periodSeconds. Especifique um valor entre 1 e 3600.O padrão é 1. - Opcional. PERIOD: o período (em segundos) em que a sondagem deve ser feita. Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 3600 segundos. O valor padrão é de 10 segundos.
YAML
Atividade HTTP
Adicione um endpoint HTTP/1 (o padrão do Cloud Run, não HTTP/2) no código da instância para responder à sondagem. O nome do endpoint (por exemplo, /startup,
/health ou /are_you_ready) precisa corresponder ao path na
configuração da sondagem. Os endpoints de verificação de integridade HTTP são acessíveis externamente
e seguem os mesmos princípios de qualquer outro endpoint de instância HTTP exposto externamente.
-
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML correspondente:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Configure o atributo
livenessProbecomo mostrado:apiVersion: serving.knative.dev/v1 apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA 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
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: um caminho relativo para o endpoint HTTP, por exemplo,
/health. - CONTAINER_PORT (opcional): defina como a porta do contêiner usada para sua instância.
- DELAY (opcional): o número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
- THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
- Opcional:
httpHeaderspode ser usado para fornecer vários cabeçalhos personalizados ou repetidos usando os campos HEADER_NAME e HEADER_VALUE, conforme mostrado. - Opcional. TIMEOUT: o número de segundos de espera até que a sondagem expire. Este valor não pode exceder o valor especificado para
periodSeconds. Especifique um valor entre 1 e 3600.O padrão é 1. - Opcional. PERIOD: o período (em segundos) em que a sondagem deve ser feita. Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 3600 segundos. O valor padrão é de 10 segundos.
-
Crie ou atualize a instância usando o seguinte comando:
gcloud beta run instances replace instance.yaml
Ativação do gRPC
Verifique se a imagem do contêiner implementa o protocolo de verificação de integridade do gRPC.
-
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML correspondente:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Configure o atributo
livenessProbecomo mostrado:apiVersion: serving.knative.dev/v1 apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - image: IMAGE_URL livenessProbe: grpc: port: CONTAINER_PORT service: GRPC_SERVICE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - GRPC_INSTANCE (opcional): se definido, será usado no campo "instance" do
grpc.health.v1.HealthCheckRequestquando a RPCgrpc.health.v1.Health.Checkfor chamada. - CONTAINER_PORT (opcional): a porta do contêiner usada para sua instância.
- DELAY (opcional): o número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
- THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
- Opcional. TIMEOUT: o número de segundos de espera até que a sondagem expire. Este valor não pode exceder o valor especificado para
periodSeconds. Especifique um valor entre 1 e 3600.O padrão é 1. - Opcional. PERIOD: o período (em segundos) em que a sondagem deve ser feita. Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 3600 segundos. O valor padrão é de 10 segundos.
-
Crie ou atualize a instância usando o seguinte comando:
gcloud beta run instances replace instance.yaml
Requisitos e comportamento da sondagem de atividade
| Tipo de sondagem | Requisitos | Comportamento |
|---|---|---|
| Atividade HTTP | Crie um endpoint de verificação de integridade HTTP Use HTTP/1 |
A sondagem de atividade só é iniciada após a conclusão da sondagem de inicialização. Após a configuração da sondagem e a conclusão de qualquer sondagem de inicialização, o Cloud Run faz uma solicitação GET HTTP para o endpoint de verificação de integridade (por exemplo, /health). Qualquer resposta 2XX ou 3XX indica sucesso, e as demais indicam falha.Se uma sondagem de atividade não for concluída dentro do tempo especificado ( failureThreshold * periodSeconds), o contêiner será desligado usando um sinal SIGKILL. Todas as solicitações restantes que ainda estavam sendo exibidas pelo contêiner são encerradas com o código de status HTTP 503. Depois que o contêiner é encerrado, o escalonamento automático do Cloud Run inicia uma nova instância de contêiner. |
| Ativação do gRPC | Implemente o protocolo de verificação de integridade do gRPC na instância do Cloud Run. | Se você configurar uma sondagem de inicialização do gRPC, a sondagem de atividade só vai começar depois que a sondagem de inicialização for concluída. Depois que a sondagem de atividade for configurada e qualquer sondagem de inicialização for concluída, o Cloud Run fará uma solicitação de verificação de integridade para a instância. Se uma sondagem de atividade não for concluída dentro do tempo especificado ( failureThreshold * periodSeconds), o contêiner será desligado usando um sinal SIGKILL. Depois que o contêiner é encerrado, o escalonamento automático do Cloud Run inicia uma nova instância de contêiner. |
configurar sondagens de prontidão
As seguintes limitações se aplicam às sondagens de prontidão:- Se você ativar a afinidade da sessão, o Cloud Run continuará enviando solicitações para a mesma instância, mesmo que a verificação de prontidão falhe.
É possível configurar uma sondagem de prontidão usando a Google Cloud CLI ou YAML:
gcloud
Prontidão HTTP
Adicione um endpoint HTTP/1 (o padrão do Cloud Run, não HTTP/2) no código da instância para responder à sondagem. O nome do endpoint (por exemplo, /startup,
/health ou /are_you_ready) precisa corresponder ao path na
configuração da sondagem. Os endpoints de verificação de integridade HTTP são acessíveis externamente
e seguem os mesmos princípios de qualquer outro endpoint de instância HTTP exposto externamente.
Execute este comando:
gcloud beta run instances deploy INSTANCE \
--image=IMAGE_URL \
--readiness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH (opcional): o caminho relativo para o endpoint HTTP, por exemplo,
/are_you_ready. O caminho padrão é/. - CONTAINER_PORT (opcional): a porta do contêiner usada para sua instância. A porta padrão é a principal porta de entrada.
- SUCCESS_THRESHOLD (opcional): o número mínimo de sucessos consecutivos para que a sondagem seja considerada bem-sucedida após uma falha. O padrão é 2.
- FAILURE_THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de informar uma falha, o que faz com que a instância pare de receber tráfego. o padrão é 3;
- TIMEOUT (opcional): o número de segundos a serem aguardados até que a sondagem atinja o tempo limite. Este valor não pode exceder o valor especificado para
periodSeconds. Especifique um valor de 1 a 300. O padrão é 1. - PERIOD (opcional): o período (em segundos) em que a sondagem deve ser feita.
Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 a 300. O valor padrão é de 10 segundos.
Prontidão do gRPC
Verifique se a imagem do contêiner implementa o protocolo de verificação de integridade do gRPC.
Execute este comando:
gcloud beta run instances deploy INSTANCE \
--image=IMAGE_URL \
--readiness-probe grpc.port=CONTAINER_PORT,grpc.instance=GRPC_INSTANCE,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - CONTAINER_PORT (opcional): a porta do contêiner usada para sua instância. A porta padrão é a principal de entrada.
- GRPC_INSTANCE (opcional): se definido, será usado no campo "instance" do
grpc.health.v1.HealthCheckRequestquando a RPCgrpc.health.v1.Health.Checkfor chamada. - SUCCESS_THRESHOLD (opcional): o número mínimo de sucessos consecutivos para que a sondagem seja considerada bem-sucedida após uma falha. O padrão é 2.
- FAILURE_THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de informar uma falha, o que faz com que a instância pare de receber tráfego. o padrão é 3;
- TIMEOUT (opcional): o número de segundos a serem aguardados até que a sondagem atinja o tempo limite. Este valor não pode exceder o valor especificado para
periodSeconds. Especifique um valor de 1 a 300. O padrão é 1. - PERIOD (opcional): o período (em segundos) em que a sondagem deve ser feita.
Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 a 300. O valor padrão é de 10 segundos.
YAML
Prontidão HTTP
Adicione um endpoint HTTP/1 (o padrão do Cloud Run, não HTTP/2) no código da instância para responder à sondagem. O nome do endpoint (por exemplo, /startup,
/health ou /are_you_ready) precisa corresponder ao path na
configuração da sondagem. Os endpoints de verificação de integridade HTTP são acessíveis externamente
e seguem os mesmos princípios de qualquer outro endpoint de instância HTTP exposto externamente.
-
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML correspondente:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Configure o atributo
readinessProbecomo mostrado:apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE 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
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH (opcional): o caminho relativo para o endpoint HTTP, por exemplo,
/are_you_ready. O caminho padrão é/. - CONTAINER_PORT (opcional): a porta do contêiner usada para sua instância. A porta padrão é a principal porta de entrada.
- SUCCESS_THRESHOLD (opcional): o número mínimo de sucessos consecutivos para que a sondagem seja considerada bem-sucedida após uma falha. O padrão é 2.
- FAILURE_THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de informar uma falha, o que faz com que a instância pare de receber tráfego. o padrão é 3;
- TIMEOUT (opcional): o número de segundos a serem aguardados até que a sondagem atinja o tempo limite. Este valor não pode exceder o valor especificado para
periodSeconds. Especifique um valor de 1 a 300. O padrão é 1. - PERIOD (opcional): o período (em segundos) em que a sondagem deve ser feita.
Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 a 300. O valor padrão é de 10 segundos.
-
Crie ou atualize a instância usando o seguinte comando:
gcloud beta run instances replace instance.yaml
Prontidão do gRPC
Verifique se a imagem do contêiner implementa o protocolo de verificação de integridade do gRPC.
-
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML correspondente:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Configure o atributo
readinessProbecomo mostrado:apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: spec: containers: - image: IMAGE_URL readinessProbe: grpc: port: CONTAINER_PORT instance: GRPC_INSTANCE successThreshold: SUCCESS_THRESHOLD failureThreshold: FAILURE_THRESHOLD timeoutSeconds: TIMEOUT periodSeconds: PERIOD
Substitua:
- INSTANCE: o nome da sua instância do Cloud Run.
- IMAGE_URL: uma referência à imagem do contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - CONTAINER_PORT (opcional): a porta do contêiner usada para sua instância. A porta padrão é a principal de entrada.
- GRPC_INSTANCE (opcional): se definido, será usado no campo "instance" do
grpc.health.v1.HealthCheckRequestquando a RPCgrpc.health.v1.Health.Checkfor chamada. - SUCCESS_THRESHOLD (opcional): o número mínimo de sucessos consecutivos para que a sondagem seja considerada bem-sucedida após uma falha. O padrão é 2.
- FAILURE_THRESHOLD (opcional): o número de vezes que a sondagem é repetida antes de informar uma falha, o que faz com que a instância pare de receber tráfego. o padrão é 3;
- TIMEOUT (opcional): o número de segundos a serem aguardados até que a sondagem atinja o tempo limite. Este valor não pode exceder o valor especificado para
periodSeconds. Especifique um valor de 1 a 300. O padrão é 1. - PERIOD (opcional): o período (em segundos) em que a sondagem deve ser feita.
Por exemplo,
2para executar a sondagem a cada dois segundos. Especifique um valor de 1 a 300. O valor padrão é de 10 segundos.
-
Crie ou atualize a instância usando o seguinte comando:
gcloud beta run instances replace instance.yaml
Alocação de CPU
- A CPU é sempre alocada quando as sondagens são executadas.
- Todas as sondagens são cobradas pelo consumo de uso da memória e CPU, mas não há cobrança baseada em solicitação.
A seguir
- Saiba como configurar um protocolo de verificação de integridade do gRPC.