Configurar verificações de integridade do contêiner (jobs)

Esta página descreve como configurar sondagens de inicialização HTTP, TCP e gRPC para jobs novos e atuais do Cloud Run. A configuração varia de acordo com o tipo de sondagem.

Casos de uso

É possível configurar sondagens de verificação de integridade de inicialização. As sondagens de inicialização determinam se o contêiner foi iniciado e está pronto para executar o job.

Quando um job falha repetidamente, o Cloud Run limita as reinicializações de tarefas para evitar loops de falha incontrolados.

Requisitos e comportamento da sondagem

Tipo de sondagem Requisitos Comportamento
inicialização do TCP Nenhum 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 intervalo de tempo especificado, o Cloud Run vai encerrar o contêiner. Esse intervalo de tempo é calculado como failureThreshold * periodSeconds e não pode exceder 240 segundos.
Inicialização HTTP Crie um endpoint de verificação de integridade HTTP
Use HTTP/1
Depois que você configura a sondagem, o Cloud Run faz uma solicitação HTTP GET para o endpoint da verificação de integridade do job (por exemplo, /ready). Qualquer resposta entre 200 e 400 é um 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á encerrado.
Inicialização do gRPC Implemente o protocolo de verificação de integridade do gRPC no seu job 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

Configure sondagens HTTP, TCP e gRPC usando o console do Google Cloud ou o YAML:

Console

Importante: se você estiver configurando o job do Cloud Run para sondagens HTTP, também precisará adicionar um endpoint de verificação de integridade HTTP no código do job para responder à sondagem. Se você estiver configurando uma sondagem gRPC, também precisará implementar o protocolo de verificação de integridade do gRPC no seu job do Cloud Run.

  1. No console do Google Cloud , acesse a página Cloud Run.

    Acessar o Cloud Run

  2. Para um novo job, clique em IMPLANTAR CONTÊINER e em Job. Para um job existente, clique na guia Jobs, selecione o job e clique em VIEW AND EDIT JOB CONFIGURATION.

  3. Expanda Contêineres, volumes, rede, segurança.

  4. Na função Contêiner(es) acesse Verificações de integridade e clique em Adicionar verificação de integridade para abrir Adicionar verificação de integridade de configuração do Terraform.

  5. No menu Selecionar tipo de verificação de integridade, escolha o tipo de inicialização da verificação de integridade.

  6. No menu Selecionar tipo de sondagem, escolha o tipo de sondagem, como HTTP ou gRPC. O formulário de configuração da sondagem será exibido.

  7. A configuração da sondagem varia de acordo com o tipo. Defina as configurações da sondagem:

    • Se você estiver usando sondagens HTTP:
      • Use o campo Caminho para especificar o caminho relativo ao endpoint, por exemplo, /.
      • Marque a caixa de seleçã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.
    • Em Porta, especifique a porta em que o contêiner de job detecta a sonda.
    • Em Atraso inicial, especifique quantos segundos aguardar após a inicialização do contêiner antes de realizar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
    • Em Período, especifique o intervalo de tempo (em segundos) em que a sondagem será realizada. Por exemplo, 2 para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
    • Em Limite de falha, especifique o número de vezes que a sondagem será repetida antes de encerrar o contêiner. O valor padrão é 3.
    • Em Tempo limite, especifique quantos segundos esperar 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.
  8. Clique em Adicionar para incluir o novo limite.

YAML

Importante: se você estiver configurando o job do Cloud Run para sondagens HTTP, também precisará adicionar um endpoint no código do job 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 seu job do Cloud Run.

inicialização do TCP

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configure o atributo startupProbe como 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 pelo nome do job do Cloud Run.
    • IMAGE_URL pelo URL da imagem do contêiner do job. Por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • Opcional: CONTAINER_PORT com a porta em que o contêiner de trabalho detecta a sondagem.
    • DELAY com o número de segundos para aguardar após o início do contêiner antes de realizar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
    • Opcional: TIMEOUT com 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 pelo número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
    • PERIOD com período (em segundos) em que a sondagem deve ser feita. Por exemplo, 2 para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

Inicialização HTTP

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configure o atributo startupProbe como 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 pelo nome do job do Cloud Run.
    • IMAGE_URL pelo URL da imagem do contêiner do job. Por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH pelo caminho relativo para o endpoint HTTP, por exemplo, /ready.
    • Opcional: CONTAINER_PORT com a porta em que o contêiner de trabalho detecta a sondagem.
    • Opcional: httpHeaders pode ser usado para fornecer vários cabeçalhos personalizados ou repetidos usando os campos HEADER_NAME e HEADER_VALUE, conforme mostrado.
    • Opcional: DELAY pelo número de segundos de espera após o início do contêiner antes de realizar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
    • Opcional: TIMEOUT com 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.
    • Opcional: THRESHOLD pelo número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
    • Opcional: PERIOD com o período (em segundos) em que a sondagem deve ser feita. Por exemplo, 2 para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

Inicialização do gRPC

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configure o atributo startupProbe como 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 pelo nome do job do Cloud Run.
    • IMAGE_URL pelo URL da imagem do contêiner do job. Por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • Opcional: GRPC_SERVICE. Se definido, ele será usado no campo de serviço do grpc.health.v1.HealthCheckRequest quando o RPC grpc.health.v1.Health.Check for chamado.
    • Opcional: CONTAINER_PORT com a porta em que o contêiner de trabalho detecta a sondagem.
    • Opcional: DELAY pelo número de segundos de espera após o início do contêiner antes de realizar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
    • Opcional: TEMPO LIMITE com 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.
    • Opcional: THRESHOLD pelo número de vezes que a sondagem é repetida antes de encerrar o contêiner. O valor padrão é 3.
    • Opcional: PERIOD com o período (em segundos) em que a sondagem deve ser feita. Por exemplo, 2 para executar a sondagem a cada dois segundos. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

Criar endpoints de verificação de integridade HTTP

Se você configurar o job do Cloud Run para uma sondagem de inicialização HTTP, vai precisar adicionar um endpoint no código do job para responder à sondagem. É possível usar qualquer nome para o endpoint, como /startup ou /ready. O nome precisa corresponder aos valores especificados 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