As verificações de estado do Cloud Run garantem que as instâncias de contentores estão a ser executadas corretamente e que conseguem publicar tráfego. Com as verificações de estado do Cloud Run, pode personalizar quando o seu contentor está pronto para receber pedidos e quando o seu contentor deve ser considerado não saudável para exigir um reinício.
Exemplos de utilização
Pode configurar dois tipos de sondas de verificação de funcionamento:
As sondagens de arranque determinam se o contentor foi iniciado e está pronto para aceitar tráfego.
- Quando configura uma sondagem de arranque, as verificações de atividade são desativadas até que a sondagem de arranque determine que o contentor foi iniciado, para evitar interferências com o arranque do serviço.
- As sondas de arranque são especialmente úteis se usar verificações de atividade em contentores de arranque lento, porque as sondas de arranque impedem que os contentores sejam encerrados prematuramente antes de estarem em funcionamento.
As sondas de atividade determinam se um contentor deve ser reiniciado.
- Neste caso, reiniciar um contentor pode aumentar a disponibilidade do serviço em caso de erros.
- As sondas de atividade destinam-se a reiniciar instâncias individuais que não podem ser recuperadas de outra forma. Devem ser usadas principalmente para falhas de instâncias irrecuperáveis, como a deteção de um impasse em que um serviço está em execução, mas não consegue progredir. Pode exigir uma sondagem de atividade para cada contentor através de políticas da organização personalizadas.
Quando um serviço sofre falhas repetidas de inicialização ou de sondagem de atividade, o Cloud Run limita os reinícios de instâncias para evitar ciclos de falhas de sistema descontrolados.
Configure sondas
Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também vão receber automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.
Configure sondagens de arranque
Pode configurar sondas HTTP, TCP e gRPC através da Google Cloud consola, YAML ou Terraform:
Consola
Na Google Cloud consola, aceda à página Cloud Run:
Para um novo serviço, expanda Recipientes, volumes, rede, segurança para apresentar as opções de verificação do estado de funcionamento. Para um serviço existente, clique no serviço que quer configurar e, de seguida, clique em Editar e implementar para apresentar as opções de verificação do estado.
Na secção Contentores, aceda a Verificações de funcionamento e clique em Adicionar verificação de funcionamento para abrir o painel de configuração Adicionar verificação de funcionamento.
No menu Selecionar tipo de verificação de estado, selecione o tipo de verificação de estado que quer adicionar.
No menu Selecionar tipo de teste de sondagem, selecione o tipo de teste de sondagem que quer usar, por exemplo, HTTP ou gRPC. É apresentado o formulário de configuração da sondagem.
Tenha em atenção que a configuração da sonda varia consoante o tipo de sonda. Configure as definições da sondagem:
Se estiver a usar verificações HTTP:
Certifique-se de que o seu serviço usa HTTP/1 (a predefinição do Cloud Run) e não HTTP/2.
Use o campo Caminho para especificar o caminho relativo para o ponto final, por exemplo,
/
.Selecione a caixa de verificação Cabeçalhos HTTP para especificar cabeçalhos personalizados opcionais. Especifique o nome do cabeçalho no campo Nome e o valor do cabeçalho no campo Valor. Clique em Adicionar cabeçalho HTTP para especificar mais cabeçalhos.
Se estiver a usar sondagens gRPC, certifique-se de que a imagem do contentor implementa o protocolo de verificação do estado do gRPC. Para mais informações, consulte o protocolo de verificação de estado GRPC.
Em Porta, especifique a porta do contentor usada para o seu serviço.
Para Atraso inicial, especifique o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
Para Período, especifique o período (em segundos) no qual deve ser realizada a sondagem. Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor entre 1 e 240 segundos. O valor predefinido é 10 segundos.Para Limite de falhas, especifique o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
Para Tempo limite, especifique o número de segundos a aguardar até que a sondagem expire. Este valor não pode exceder o valor especificado para
periodSeconds
. Especifique um valor de 1 a 240. A predefinição é 1.
Clique em Adicionar para adicionar o novo limite
gcloud
Arranque TCP
Execute o seguinte comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--startup-probe tcpSocket.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Substituir:
- SERVICE com o nome do seu serviço do Cloud Run.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAME já tem de estar criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) CONTAINER_PORT deve ser definido como a porta do contentor usada para o seu serviço.
- DELAY com o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
- (OPCIONAL) TIMEOUT com o número de segundos a aguardar até que a sondagem expire. Este valor não pode exceder o valor especificado para
periodSeconds
. Especifique um valor de 1 a 240. A predefinição é 1. - THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
- PERIOD com o período (em segundos) em que a sondagem deve ser realizada.
Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor de 1 a 240 segundos. O valor predefinido é 10 segundos.
Arranque HTTP
Execute o seguinte 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
Substituir:
- SERVICE com o nome do seu serviço do Cloud Run.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAME já tem de estar criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- PATH com o caminho relativo para o ponto final de HTTP, por exemplo,
/ready
. - (OPCIONAL) CONTAINER_PORT deve ser definido como a porta do contentor usada para o seu serviço.
- (OPCIONAL) DELAY com o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
- (OPCIONAL) THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
- (OPCIONAL)TIMEOUT com o número de segundos a aguardar até o teste atingir o limite de tempo. Este valor não pode exceder o valor especificado para periodSeconds. Especifique um valor de 1 a 240. A predefinição é 1.
- (OPCIONAL) PERIOD com o período (em segundos) em que a sondagem deve ser realizada. Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor de 1 a 240 segundos. O valor predefinido é 10 segundos.
Arranque do gRPC
Antes de usar as sondas gRPC, certifique-se de que a imagem do contentor implementa o protocolo de verificação do estado do gRPC. Para mais informações, consulte o protocolo de verificação de estado GRPC.
Execute o seguinte 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
Substituir:
- SERVICE com o nome do seu serviço do Cloud Run.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAME já tem de estar criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) GRPC_SERVICE. Se estiver definido, este valor é usado no campo de serviço do
grpc.health.v1.HealthCheckRequest
quando o rpcgrpc.health.v1.Health.Check
é chamado. - (OPCIONAL) CONTAINER_PORT deve ser definido como a porta do contentor usada para o seu serviço.
- (OPCIONAL) DELAY com o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
- (OPCIONAL) THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
- (OPCIONAL)TIMEOUT com o número de segundos a aguardar até o teste atingir o limite de tempo. Este valor não pode exceder o valor especificado para periodSeconds. Especifique um valor de 1 a 240. A predefinição é 1.
- (OPCIONAL) PERIOD com o período (em segundos) em que a sondagem deve ser realizada. Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor de 1 a 240 segundos. O valor predefinido é 10 segundos.
YAML
Arranque TCP
-
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Configure o atributo
startupProbe
conforme mostrado: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
Substituir:
- SERVICE com o nome do seu serviço do Cloud Run.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAME já tem de estar criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) CONTAINER_PORT deve ser definido como a porta do contentor usada para o seu serviço.
- DELAY com o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
- (OPCIONAL) TIMEOUT com o número de segundos a aguardar até que a sondagem expire. Este valor não pode exceder o valor especificado para
periodSeconds
. Especifique um valor de 1 a 240. A predefinição é 1. - THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
- PERIOD com o período (em segundos) em que a sondagem deve ser realizada.
Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor de 1 a 240 segundos. O valor predefinido é 10 segundos.
-
Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
Arranque HTTP
-
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Certifique-se de que o seu serviço usa HTTP/1 (a predefinição do Cloud Run) e não HTTP/2.
Configure o atributo
startupProbe
conforme mostrado: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
Substituir:
- SERVICE com o nome do seu serviço do Cloud Run.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAME já tem de estar criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- PATH com o caminho relativo para o ponto final de HTTP, por exemplo,
/ready
. - (OPCIONAL) CONTAINER_PORT deve ser definido como a porta do contentor usada para o seu serviço.
- (OPCIONAL) DELAY com o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
- (OPCIONAL) THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
- (OPCIONAL)
httpHeaders
pode ser usado para fornecer cabeçalhos personalizados múltiplos ou repetidos através dos campos HEADER_NAME e HEADER_VALUE, conforme mostrado. - (OPCIONAL)TIMEOUT com o número de segundos a aguardar até o teste atingir o limite de tempo. Este valor não pode exceder o valor especificado para periodSeconds. Especifique um valor de 1 a 240. A predefinição é 1.
- (OPCIONAL) PERIOD com o período (em segundos) em que a sondagem deve ser realizada. Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor de 1 a 240 segundos. O valor predefinido é 10 segundos.
-
Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
Arranque do gRPC
Antes de usar as sondas gRPC, certifique-se de que a imagem do contentor implementa o protocolo de verificação do estado do gRPC. Para mais informações, consulte o protocolo de verificação de estado GRPC.
-
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Configure o atributo
startupProbe
conforme mostrado: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
Substituir:
- SERVICE com o nome do seu serviço do Cloud Run.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAME já tem de estar criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) GRPC_SERVICE. Se estiver definido, este valor é usado no campo de serviço do
grpc.health.v1.HealthCheckRequest
quando o rpcgrpc.health.v1.Health.Check
é chamado. - (OPCIONAL) CONTAINER_PORT deve ser definido como a porta do contentor usada para o seu serviço.
- (OPCIONAL) DELAY com o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
- (OPCIONAL) THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
- (OPCIONAL)TIMEOUT com o número de segundos a aguardar até o teste atingir o limite de tempo. Este valor não pode exceder o valor especificado para periodSeconds. Especifique um valor de 1 a 240. A predefinição é 1.
- (OPCIONAL) PERIOD com o período (em segundos) em que a sondagem deve ser realizada. Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor de 1 a 240 segundos. O valor predefinido é 10 segundos.
-
Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Arranque TCP
Configure o seu serviço do Cloud Run com o atributo startup_probe
, conforme mostrado:
Arranque HTTP
Certifique-se de que o seu serviço usa HTTP/1 (a predefinição do Cloud Run) e não HTTP/2.
Configure o seu serviço do Cloud Run com o atributo startup_probe
, conforme mostrado:
Arranque do gRPC
Antes de usar as sondas gRPC, certifique-se de que a imagem do contentor implementa o protocolo de verificação do estado do gRPC. Para mais informações, consulte o protocolo de verificação de estado GRPC.
Configure o seu serviço do Cloud Run com o atributo startup_probe
, conforme mostrado:
A sondagem de arranque TCP predefinida
Uma sondagem de arranque de TCP é configurada automaticamente para um novo serviço do Cloud Run com valores predefinidos. A sondagem predefinida é equivalente ao seguinte:
startupProbe: tcpSocket: port: CONTAINER_PORT timeoutSeconds: 1 periodSeconds: 10 failureThreshold: 3
Substitua CONTAINER_PORT pela porta do contentor definida para o seu serviço.
Pode alterar estes valores predefinidos seguindo as instruções na secção configuração da sondagem desta página.
Requisitos e comportamento da sondagem de arranque
Tipo de teste | Requisitos | Comportamento |
---|---|---|
Arranque TCP | Nenhum | Por predefinição, o Cloud Run estabelece uma ligação TCP para abrir a porta TCP especificada. Se o Cloud Run não conseguir estabelecer uma ligação, indica uma falha. Se uma sondagem de arranque não for bem-sucedida dentro do tempo especificado ( failureThreshold * periodSeconds ), que não pode exceder 240 segundos, o contentor é encerrado. Consulte também as predefinições de TCP. |
Arranque HTTP | Crie um ponto final de verificação de funcionamento de HTTP Use HTTP/1 |
Após a configuração da sondagem, o Cloud Run faz um pedido HTTP GET ao ponto final de verificação do estado do serviço (por exemplo, /ready ). Qualquer resposta entre 200 e 400 é um êxito. Tudo o resto indica uma falha.Se uma sondagem de arranque não for bem-sucedida dentro do tempo especificado ( failureThreshold * periodSeconds ), que não pode exceder 240 segundos, o contentor é encerrado.Se a sondagem de arranque HTTP for bem-sucedida dentro do tempo especificado e tiver configurado uma sondagem de atividade HTTP, esta é iniciada. |
Arranque do gRPC | Implemente o protocolo de verificação de estado do gRPC no seu serviço do Cloud Run | Se uma sondagem de arranque não for bem-sucedida dentro do tempo especificado (failureThreshold * periodSeconds ), que não pode exceder 240 segundos, o contentor é encerrado. |
Configure as sondas de atividade
Pode configurar sondas HTTP e gRPC através da Google Cloud consola, de YAML ou do Terraform:
Consola
Antes de usar as sondas gRPC, certifique-se de que a imagem do contentor implementa o protocolo de verificação do estado do gRPC. Para mais informações, consulte o protocolo de verificação de estado GRPC.
Na Google Cloud consola, aceda à página Cloud Run:
Para um novo serviço, expanda Recipientes, volumes, rede, segurança para apresentar as opções de verificação do estado de funcionamento. Para um serviço existente, clique no serviço que quer configurar e, de seguida, clique em Editar e implementar para apresentar as opções de verificação do estado.
Na secção Contentores, aceda a Verificações de funcionamento e clique em Adicionar verificação de funcionamento para abrir o painel de configuração Adicionar verificação de funcionamento.
No menu Selecionar tipo de verificação de estado, selecione o tipo de verificação de estado que quer adicionar.
No menu Selecionar tipo de teste de sondagem, selecione o tipo de teste de sondagem que quer usar, por exemplo, HTTP ou gRPC. É apresentado o formulário de configuração da sondagem.
Tenha em atenção que a configuração da sonda varia consoante o tipo de sonda. Configure as definições da sondagem:
Se estiver a usar verificações HTTP:
Certifique-se de que o seu serviço usa HTTP/1 (a predefinição do Cloud Run) e não HTTP/2.
Use o campo Caminho para especificar o caminho relativo para o ponto final, por exemplo,
/
.Selecione a caixa de verificação Cabeçalhos HTTP para especificar cabeçalhos personalizados opcionais. Especifique o nome do cabeçalho no campo Nome e o valor do cabeçalho no campo Valor. Clique em Adicionar cabeçalho HTTP para especificar mais cabeçalhos.
Se estiver a usar sondagens gRPC, certifique-se de que a imagem do contentor implementa o protocolo de verificação do estado do gRPC. Para mais informações, consulte o protocolo de verificação de estado GRPC.
Em Porta, especifique a porta do contentor usada para o seu serviço.
Para Atraso inicial, especifique o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
Para Período, especifique o período (em segundos) no qual deve ser realizada a sondagem. Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor entre 1 e 240 segundos. O valor predefinido é 10 segundos.Para Limite de falhas, especifique o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
Para Tempo limite, especifique o número de segundos a aguardar até que a sondagem expire. Este valor não pode exceder o valor especificado para
periodSeconds
. Especifique um valor de 1 a 240. A predefinição é 1.
Clique em Adicionar para adicionar o novo limite
gcloud
Atividade HTTP
Execute o seguinte 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
Substituir:
- SERVICE com o nome do seu serviço do Cloud Run.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAME já tem de estar criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- PATH com o caminho relativo para o ponto final de HTTP, por exemplo,
/ready
. - (OPCIONAL) CONTAINER_PORT deve ser definido como a porta do contentor usada para o seu serviço.
- (OPCIONAL) DELAY com o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
- (OPCIONAL) THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
- (OPCIONAL) TIMEOUT com o número de segundos a aguardar até o teste de sondagem expirar. Este valor não pode exceder o valor especificado para
periodSeconds
. Especifique um valor de 1 a 3600.O valor predefinido é 1. - (OPCIONAL) PERIOD com o período (em segundos) em que a sondagem deve ser realizada. Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor entre 1 segundo e 3600 segundos. O valor predefinido é 10 segundos.
Atividade do gRPC
Antes de usar as sondas gRPC, certifique-se de que a imagem do contentor implementa o protocolo de verificação do estado do gRPC. Para mais informações, consulte o protocolo de verificação de estado GRPC.
Execute o seguinte 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
Substituir:
- SERVICE com o nome do seu serviço do Cloud Run.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAME já tem de estar criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) GRPC_SERVICE. Se estiver definido, este valor é usado no campo de serviço do
grpc.health.v1.HealthCheckRequest
quando o rpcgrpc.health.v1.Health.Check
é chamado. - (OPCIONAL) CONTAINER_PORT deve ser definido como a porta do contentor usada para o seu serviço.
- (OPCIONAL) DELAY com o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
- (OPCIONAL) THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
- (OPCIONAL) TIMEOUT com o número de segundos a aguardar até o teste de sondagem expirar. Este valor não pode exceder o valor especificado para
periodSeconds
. Especifique um valor de 1 a 3600.O valor predefinido é 1. - (OPCIONAL) PERIOD com o período (em segundos) em que a sondagem deve ser realizada. Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor entre 1 segundo e 3600 segundos. O valor predefinido é 10 segundos.
YAML
Atividade HTTP
-
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Certifique-se de que o seu serviço usa HTTP/1 (a predefinição do Cloud Run) e não HTTP/2.
Configure o atributo
livenessProbe
conforme mostrado: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
Substituir:
- SERVICE com o nome do seu serviço do Cloud Run.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAME já tem de estar criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- PATH com o caminho relativo para o ponto final de HTTP, por exemplo,
/ready
. - (OPCIONAL) CONTAINER_PORT deve ser definido como a porta do contentor usada para o seu serviço.
- (OPCIONAL) DELAY com o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
- (OPCIONAL) THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
- (OPCIONAL)
httpHeaders
pode ser usado para fornecer cabeçalhos personalizados múltiplos ou repetidos através dos campos HEADER_NAME e HEADER_VALUE, conforme mostrado. - (OPCIONAL) TIMEOUT com o número de segundos a aguardar até o teste de sondagem expirar. Este valor não pode exceder o valor especificado para
periodSeconds
. Especifique um valor de 1 a 3600.O valor predefinido é 1. - (OPCIONAL) PERIOD com o período (em segundos) em que a sondagem deve ser realizada. Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor entre 1 segundo e 3600 segundos. O valor predefinido é 10 segundos.
-
Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
Atividade do gRPC
Antes de usar as sondas gRPC, certifique-se de que a imagem do contentor implementa o protocolo de verificação do estado do gRPC. Para mais informações, consulte o protocolo de verificação de estado GRPC.
-
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Configure o atributo
livenessProbe
conforme mostrado: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
Substituir
- SERVICE com o nome do seu serviço do Cloud Run.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAME já tem de estar criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) GRPC_SERVICE. Se estiver definido, este valor é usado no campo de serviço do
grpc.health.v1.HealthCheckRequest
quando o rpcgrpc.health.v1.Health.Check
é chamado. - (OPCIONAL) CONTAINER_PORT deve ser definido como a porta do contentor usada para o seu serviço.
- (OPCIONAL) DELAY com o número de segundos a aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 segundos a 240 segundos. O valor predefinido é 0 segundos.
- (OPCIONAL) THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
- (OPCIONAL) TIMEOUT com o número de segundos a aguardar até o teste de sondagem expirar. Este valor não pode exceder o valor especificado para
periodSeconds
. Especifique um valor de 1 a 3600.O valor predefinido é 1. - (OPCIONAL) PERIOD com o período (em segundos) em que a sondagem deve ser realizada. Por exemplo,
2
para realizar a sondagem a cada 2 segundos. Especifique um valor entre 1 segundo e 3600 segundos. O valor predefinido é 10 segundos.
-
Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Atividade HTTP
Certifique-se de que o seu serviço usa HTTP/1 (a predefinição do Cloud Run) e não HTTP/2.
Configure o seu serviço do Cloud Run com o atributo liveness_probe
, conforme mostrado:
Atividade do gRPC
Antes de usar as sondas gRPC, certifique-se de que a imagem do contentor implementa o protocolo de verificação do estado do gRPC. Para mais informações, consulte o protocolo de verificação de estado GRPC.
Configure o seu serviço do Cloud Run com o atributo liveness_probe
, conforme mostrado:
Requisitos e comportamento da sondagem de atividade
Tipo de teste | Requisitos | Comportamento |
---|---|---|
Atividade HTTP | Crie um ponto final de verificação de funcionamento de HTTP Use HTTP/1 |
A sondagem de vitalidade só começa depois de a sondagem de arranque ser bem-sucedida. Após a configuração da sondagem e se qualquer sondagem de arranque for bem-sucedida, o Cloud Run faz um pedido HTTP GET ao ponto final de verificação do estado do serviço (por exemplo, /health ). Qualquer resposta entre 200 e 400 é um sucesso. Tudo o resto indica uma falha.Se uma sondagem de atividade não for bem-sucedida dentro do tempo especificado ( failureThreshold * periodSeconds ), o contentor é encerrado através de um sinal SIGKILL . Todos os pedidos restantes que ainda estavam a ser publicados pelo contentor são terminados com o código de estado HTTP 503 . Após o encerramento do contentor, o dimensionamento automático do Cloud Run inicia uma nova instância de contentor. |
Atividade do gRPC | Implemente o protocolo de verificação de estado do gRPC no seu serviço do Cloud Run | Se configurar uma sondagem de arranque gRPC, a sondagem de atividade é iniciada apenas após a sondagem de arranque ser bem-sucedida. Depois de a sondagem de atividade ser configurada e qualquer sondagem de arranque ser bem-sucedida, o Cloud Run faz um pedido de verificação de estado ao serviço. Se uma sondagem de atividade não for bem-sucedida dentro do tempo especificado ( failureThreshold * periodSeconds ), o contentor é encerrado através de um sinal SIGKILL . Após o encerramento do contentor, o dimensionamento automático do Cloud Run inicia uma nova instância de contentor. |
Crie pontos finais de verificação de funcionamento de HTTP
Se configurar o seu serviço do Cloud Run para uma sondagem de arranque HTTP,
tem de adicionar um ponto final no código do serviço para responder à
sondagem. O ponto final pode ter o nome que quiser, por exemplo, /startup
ou /ready
, mas tem de corresponder aos valores especificados para path
na configuração da sondagem, da seguinte forma:
startupProbe: httpGet: path: /ready
Se configurar o seu serviço do Cloud Run para uma sondagem de atividade HTTP
com um caminho como /health
, define-o na configuração da sondagem da seguinte forma:
livenessProbe: httpGet: path: /health
Os pontos finais de verificação do estado de funcionamento HTTP são acessíveis externamente e seguem os mesmos princípios que quaisquer outros pontos finais de serviço HTTP expostos externamente.
Atribuição de CPU
- A CPU é sempre atribuída quando as sondas são executadas.
- Todas as sondas são faturadas pelo consumo de utilização de CPU e memória, mas não existe uma cobrança baseada em pedidos.