É possível configurar sondagens de inicialização HTTP, TCP e gRPC, além de sondagens de atividade HTTP e gRPC para pools de workers novos e atuais do Cloud Run. A configuração varia de acordo com o tipo de sondagem.
Casos de uso
É possível configurar dois tipos de sondagens de verificação de integridade:
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 do pool de workers 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, por exemplo, para capturar um impasse em que um pool de workers 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.
As sondagens de inicialização determinam se o contêiner foi iniciado.
- Quando você configura uma sondagem de inicialização, as verificações de atividade são desativadas até que ela verifique se o contêiner foi iniciado para evitar interferência na inicialização do pool de workers.
- As sondagens de inicialização são especialmente úteis se você usa verificações de atividade em contêineres iniciais lentos, porque impedem que eles sejam encerrados prematuramente antes de os contêineres estarem funcionando.
Quando um pool de trabalhadores passa por repetidas falhas na sondagem de inicialização ou atividade, o Cloud Run evita loops de falha incontrolados limitando as reinicializações de instâncias.
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.
Requisitos e comportamento da sondagem
Tipo de sondagem | Requisitos | Comportamento |
---|---|---|
inicialização do TCP | Nenhum | Se especificado, 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, o Cloud Run vai desligar o contêiner. O tempo máximo é de 240 segundos, calculado como failureThreshold * periodSeconds , que você define ao configurar a sondagem de inicialização para o pool de workers. |
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 HTTP GET para o endpoint de verificação de integridade do pool de trabalhadores (por exemplo, /ready ). Qualquer resposta entre 200 e 400 indica sucesso, e as demais indicam falha.Se uma sondagem de inicialização não for concluída dentro do tempo especificado ( failureThreshold * periodSeconds ), que não pode exceder 240 segundos, o Cloud Run desliga o contêiner.Se a sondagem de inicialização HTTP for concluída dentro do tempo especificado e você tiver configurado uma sondagem de atividade HTTP, o Cloud Run vai iniciar essa sondagem. |
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 HTTP GET para o endpoint de verificação de integridade (por exemplo, /health ). Qualquer resposta entre 200 e 400 indica sucesso, e as demais indicam falha.Se uma sondagem de atividade não for concluída dentro do tempo especificado ( failureThreshold * periodSeconds ), o Cloud Run vai desligar o contêiner 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 Cloud Run encerra o contêiner, o escalonamento automático do Cloud Run inicia uma nova instância de contêiner. |
Inicialização do gRPC | Implemente o protocolo de verificação de integridade do gRPC no pool de trabalhadores 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 Cloud Run vai encerrar o contêiner. |
Ativação do gRPC | Implemente o protocolo de verificação de integridade do gRPC no pool de trabalhadores 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 o pool de trabalhadores. Se uma sondagem de atividade não for concluída dentro do tempo especificado ( failureThreshold * periodSeconds ), o Cloud Run vai encerrar o contêiner usando um sinal SIGKILL . Depois que o Cloud Run encerra o contêiner, o escalonamento automático do Cloud Run inicia uma nova instância de contêiner. |
Configurar sondagens
Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também recebem automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.
É possível configurar sondagens HTTP, TCP e gRPC usando a API REST do Cloud Run:
API REST
Importante: se você estiver configurando o pool de workers do Cloud Run para sondagens HTTP, também precisará adicionar um endpoint de verificação de integridade HTTP ao código do pool de workers para responder à sondagem. Se você estiver configurando uma sondagem gRPC, também precisará implementar o protocolo de verificação de integridade do gRPC (em inglês) no pool de workers do Cloud Run.
Criar endpoints de verificação de integridade HTTP
Se você configurar o pool de workers do Cloud Run para uma sondagem de atividade ou inicialização HTTP, vai precisar adicionar um endpoint ao código do pool de workers para responder à
sondagem. O endpoint pode ter o nome que você quiser, por exemplo,
/startup
ou /ready
, mas precisa corresponder ao valor especificado para
path
na configuração da sondagem. Por exemplo, se você especificar /ready
para uma
sondagem de inicialização HTTP, especifique path
na configuração da sondagem, como mostrado:
startupProbe: httpGet: path: /ready
Os endpoints de verificação de integridade HTTP são acessíveis externamente e seguem os mesmos princípios de qualquer outro endpoint HTTP exposto externamente.