Configure verificações de funcionamento do contentor para tarefas

Esta página descreve como configurar sondas de arranque HTTP, TCP e gRPC para tarefas do Cloud Run novas e existentes. A configuração varia consoante o tipo de teste.

Exemplos de utilização

Pode configurar sondas de verificação de funcionamento de arranque. As sondas de arranque determinam se o contentor foi iniciado e está pronto para executar a tarefa.

Quando uma tarefa falha repetidamente ao iniciar, o Cloud Run limita os reinícios de tarefas para evitar ciclos de falhas de sistema descontrolados.

Requisitos e comportamento da sonda

Tipo de teste Requisitos Comportamento
Arranque TCP Nenhum 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 intervalo de tempo especificado, o Cloud Run encerra o contentor. Este intervalo de tempo é calculado como failureThreshold * periodSeconds e não pode exceder 240 segundos.
Arranque HTTP Crie um ponto final de verificação de funcionamento de HTTP
Use HTTP/1
Depois de configurar a sonda, o Cloud Run faz um pedido HTTP GET ao ponto final de verificação do estado do trabalho (por exemplo, /ready). Qualquer resposta entre 200 e 400 é um êxito. Tudo o resto indica uma falha.

Se uma sonda de arranque não for bem-sucedida no tempo especificado (failureThreshold * periodSeconds), que não pode exceder 240 segundos, o contentor é encerrado
Arranque do gRPC Implemente o protocolo de verificação de funcionamento gRPC no seu trabalho 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 sondas

Configure sondagens HTTP, TCP e gRPC através da Google Cloud consola ou do YAML:

Consola

Importante: se estiver a configurar a tarefa do Cloud Run para sondagens HTTP, também tem de adicionar um ponto final de verificação de estado HTTP no código da tarefa para responder à sondagem. Se estiver a configurar uma sondagem gRPC, também tem de implementar o protocolo de verificação de estado do gRPC no seu trabalho do Cloud Run.

  1. Na Google Cloud consola, aceda à página Cloud Run.

    Aceda ao Cloud Run

  2. Para um novo trabalho, selecione Trabalhos no menu e clique em Implementar contentor. Para uma tarefa existente, clique no separador Tarefas, clique na tarefa pretendida e, de seguida, clique em Ver e editar configuração da tarefa.

  3. Expanda Contentores, volumes, rede, segurança.

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

  5. No menu Selecionar tipo de verificação de estado, selecione o tipo de inicialização da verificação de estado.

  6. No menu Selecionar tipo de teste, selecione o tipo de teste, como HTTP ou gRPC. É apresentado o formulário de configuração da sondagem.

  7. 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:
      • 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. Em seguida, 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.
    • Para Porta, especifique a porta onde o contentor de tarefas escuta a sonda.
    • Para Atraso inicial, especifique quantos segundos 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 intervalo de tempo (em segundos) no qual realizar a sondagem. Por exemplo, 2 para realizar a sondagem a cada 2 segundos. Especifique um valor de 1 a 240 segundos. O valor predefinido é 10 segundos.
    • Para o Limite de falhas, especifique quantas vezes deve tentar novamente a sondagem antes de encerrar o contentor. O valor predefinido é 3.
    • Para Tempo limite, especifique o número de segundos a aguardar até que o teste de sondagem expire. Este valor não pode exceder o valor especificado para periodSeconds. Especifique um valor de 1 a 240. A predefinição é 1.
  8. Clique em Adicionar para adicionar o novo limite

YAML

Importante: se estiver a configurar a tarefa do Cloud Run para sondagens HTTP, também tem de adicionar um ponto final no código da tarefa para responder à sondagem. Se estiver a configurar uma sondagem gRPC, também tem de implementar o protocolo de verificação de funcionamento do gRPC no seu trabalho do Cloud Run.

Arranque TCP

  1. Se estiver a criar uma nova tarefa, ignore este passo. Se estiver a atualizar uma tarefa existente, transfira a respetiva configuração YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configure o atributo startupProbe conforme mostrado:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
     name: JOB
    spec:
     template:
       metadata:
       spec:
         containers:
         - image: IMAGE_URL
           startupProbe:
             tcpSocket:
               port: CONTAINER_PORT
             initialDelaySeconds: DELAY
             timeoutSeconds: TIMEOUT
             failureThreshold: THRESHOLD
             periodSeconds: PERIOD

    Substitua as seguintes variáveis:

    • JOB com o nome da tarefa do Cloud Run.
    • IMAGE_URL com o URL da imagem do contentor de tarefas, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • Opcional: CONTAINER_PORT com a porta na qual o contentor de tarefas escuta a sondagem.
    • 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.
  3. Crie ou atualize a tarefa através do seguinte comando:

    gcloud run jobs replace job.yaml

Arranque HTTP

  1. Se estiver a criar uma nova tarefa, ignore este passo. Se estiver a atualizar uma tarefa existente, transfira a respetiva configuração YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configure o atributo startupProbe conforme mostrado:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    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

    Substitua as seguintes variáveis:

    • JOB com o nome da tarefa do Cloud Run.
    • IMAGE_URL com o URL da imagem do contentor de tarefas, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH com o caminho relativo para o ponto final de HTTP, por exemplo, /ready.
    • Opcional: CONTAINER_PORT com a porta na qual o contentor de tarefas escuta a sondagem.
    • Opcional: httpHeaders pode ser usado para fornecer cabeçalhos personalizados múltiplos ou repetidos usando os campos HEADER_NAME e HEADER_VALUE, conforme mostrado.
    • 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: 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.
    • Opcional: THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
    • 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 segundo a 240 segundos. O valor predefinido é 10 segundos.
  3. Crie ou atualize a tarefa através do seguinte comando:

    gcloud run jobs replace job.yaml

Arranque do gRPC

  1. Se estiver a criar uma nova tarefa, ignore este passo. Se estiver a atualizar uma tarefa existente, transfira a respetiva configuração YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configure o atributo startupProbe conforme mostrado:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              grpc:
                service: GRPC_SERVICE
                port: CONTAINER_PORT
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    Substitua as seguintes variáveis:

    • JOB com o nome da tarefa do Cloud Run.
    • IMAGE_URL com o URL da imagem do contentor de tarefas, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • Opcional: GRPC_SERVICE. Se estiver definido, este valor é usado no campo service do grpc.health.v1.HealthCheckRequest quando o RPC grpc.health.v1.Health.Check é chamado.
    • Opcional: CONTAINER_PORT com a porta na qual o contentor de tarefas escuta a sondagem.
    • 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: TIMEOUT com o número de segundos a aguardar até o teste exceder o tempo limite. Este valor não pode exceder o valor especificado para periodSeconds. Especifique um valor de 1 a 240. A predefinição é 1.
    • Opcional: THRESHOLD com o número de vezes para repetir a sondagem antes de encerrar o contentor. O valor predefinido é 3.
    • 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 segundo a 240 segundos. O valor predefinido é 10 segundos.
  3. Crie ou atualize a tarefa através do seguinte comando:

    gcloud run jobs replace job.yaml

Crie pontos finais de verificação de funcionamento de HTTP

Se configurar a tarefa do Cloud Run para uma sondagem de arranque HTTP, tem de adicionar um ponto final no código da tarefa para responder à sondagem. Pode usar qualquer nome para o ponto final, como /startup ou /ready. O nome tem de corresponder aos valores especificados para path na configuração da sondagem. Por exemplo, se especificar /ready para uma sondagem de arranque HTTP, especifique path na configuração da sondagem, conforme mostrado:

startupProbe:
  httpGet:
    path: /ready