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 sondagens de arranque determinam se o contentor foi iniciado e está pronto para executar a tarefa.

Quando uma tarefa não é iniciada repetidamente, 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 sondagem, o Cloud Run faz um pedido HTTP GET ao ponto final da verificação de estado da tarefa (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
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 Tarefas do Cloud Run:

    Aceda ao Cloud Run

  2. Para uma nova tarefa, 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 Recipientes, 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 o Atraso inicial, especifique quantos segundos aguardar após o início do contentor antes de realizar a primeira sondagem. Especifique um valor de 0 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 atinja 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.
  8. Clique em Adicionar para adicionar o novo limite

YAML

Importante: se estiver a configurar a tarefa do Cloud Run para sondas HTTP, também tem de adicionar um ponto final no código da tarefa para responder à sonda. 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