Verificações de integridade do contêiner (serviços)

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

É possível configurar sondagens de verificação de integridade de inicialização HTTP e TCP para serviços novos e atuais do Cloud Run.

É possível usar sondagens de inicialização para determinar quando um contêiner foi iniciado e está pronto para aceitar o tráfego.

Configurar sondagens de inicialização

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 os seguintes tipos de sondagens:

  • Sondagem de inicialização HTTP
  • Sondagem de inicialização TCP

Configure uma sondagem de inicialização para um serviço do Cloud Run usando o arquivo YAML. A configuração varia de acordo com o tipo de sondagem.

Configurar uma sondagem de inicialização HTTP

Não há sondagens de inicialização HTTP padrão para HTTP, mas é possível configurar uma para o serviço do Cloud Run. Para usar uma sondagem de verificação de integridade HTTP, é necessário criar um endpoint de verificação de integridade HTTP correspondente no seu serviço para responder à sondagem.

Após a configuração da sondagem de inicialização, o Cloud Run faz uma solicitação HTTP GET para o endpoint da verificação de integridade do serviço (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.

É possível configurar uma sondagem de inicialização HTTP usando o console do Google Cloud para um serviço atual ou o YAML para um serviço novo ou atual:

Console

  1. Acesse o Cloud Run

  2. Clique no serviço que você quer configurar.

  3. Clique na guia YAML.

  4. Clique em Editar e configure o atributo startupProbe como mostrado:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
    name: SERVICE
    spec:
    template:
    metadata:
    spec:
      containers:
        image: IMAGE_URL
        startupProbe:
          httpGet:
            path: PATH
            httpHeaders:
              - name: HEADER_NAME
                value: HEADER_VALUE
          initialDelaySeconds: DELAY
          timeoutSeconds: TIMEOUT
          failureThreshold: THRESHOLD
          periodSeconds: PERIOD
    

    substituir

    • SERVICE pelo nome do serviço do Cloud Run;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest;
    • PATH pelo caminho relativo para o endpoint HTTP, por exemplo, /ready.
    • (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 pelo número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
    • (OPCIONAL) TIMEOUT pelo 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 3.600. O padrão é 1.
    • (OPCIONAL) THRESHOLD pelo número de vezes para tentar novamente a sondagem antes de marcar o contêiner como Não está pronto. O valor padrão é 3.
    • (OPCIONAL) PERIOD pela frequência (em segundos) para executar a sondagem. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
  5. Clique em Salvar e implantar nova revisão.

YAML

É possível fazer o download e ver a configuração do serviço atual usando o comando gcloud run services describe --format export, que produz resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run services replace. Modifique os campos somente conforme documentado.

  1. Para ver e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Configure o atributo startupProbe como mostrado:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              httpGet:
                path: PATH
                httpHeaders:
                  - name: HEADER_NAME
                    value: HEADER_VALUE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD
    

    substituir

    • SERVICE pelo nome do serviço do Cloud Run;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest;
    • PATH pelo caminho relativo para o endpoint HTTP, por exemplo, /ready.
    • (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 pelo número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
    • (OPCIONAL) TIMEOUT pelo 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 3.600. O padrão é 1.
    • (OPCIONAL) THRESHOLD pelo número de vezes para tentar novamente a sondagem antes de marcar o contêiner como Não está pronto. O valor padrão é 3.
    • (OPCIONAL) PERIOD pela frequência (em segundos) para executar a sondagem. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud run services replace service.yaml

Criar endpoints de verificação de integridade HTTP

Se você configurar o serviço do Cloud Run para uma sondagem de inicialização HTTP, vai precisar adicionar um endpoint no código de serviço para responder à sondagem. O endpoint pode ter o nome que você quiser, por exemplo, /startup ou /ready, mas 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

Configurar uma sondagem de inicialização TCP

Uma sondagem de inicialização TCP é configurada automaticamente com valores padrão para um novo serviço do Cloud Run se você não configurá-la. A sondagem padrão é equivalente ao seguinte:

startupProbe:
  tcpSocket:
    port: CONTAINER_PORT
  timeoutSeconds: 240
  periodSeconds: 240
  failureThreshold: 1

em que port já está definido como a porta do contêiner e permanecerá definido para a porta do contêiner, mesmo que você tente configurá-la ao atualizar a configuração da sondagem.

Para alterar esses valores padrão, siga as instruções nesta seção.

Para sondagens de inicialização TCP, o Cloud Run faz uma conexão TCP para abrir o socket 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 (failureThreshold * periodSeconds), que não pode exceder 240 segundos, o contêiner será encerrado.

É possível configurar uma sondagem de inicialização TCP usando o console do Google Cloud para um serviço atual ou YAML para um serviço novo ou atual:

Console

  1. Acesse o Cloud Run

  2. Clique no serviço que você quer configurar.

  3. Clique na guia YAML.

  4. Clique em Editar e configure o atributo startupProbe como 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
            failureThreshold: THRESHOLD
            periodSeconds: PERIOD
    

    substituir

    • SERVICE pelo nome do serviço do Cloud Run;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest;
    • CONTAINER_PORT já está definido para o que é a porta do contêiner. Ele permanecerá definido para a porta do contêiner mesmo se você tentar configurá-lo ao atualizar a sondagem.
    • DELAY pelo número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
    • THRESHOLD pelo número de vezes que a sondagem será repetida antes de marcar o contêiner como Não está pronto. O valor padrão é 3.
    • PERIOD pela frequência (em segundos) para executar a sondagem. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
  5. Clique em Salvar e implantar nova revisão.

YAML

É possível fazer o download e ver a configuração do serviço atual usando o comando gcloud run services describe --format export, que produz resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run services replace. Modifique os campos somente conforme documentado.

  1. Para ver e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Configure o atributo startupProbe como 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
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD
                

    substituir

    • SERVICE pelo nome do serviço do Cloud Run;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest;
    • CONTAINER_PORT já está definido para o que é a porta do contêiner. Esse valor não deve ser alterado.
    • DELAY pelo número de segundos de espera após o início do contêiner antes de executar a primeira sondagem. Especifique um valor de 0 a 240 segundos. O valor padrão é de 0 segundos.
    • THRESHOLD pelo número de vezes que a sondagem será repetida antes de marcar o contêiner como Não está pronto. O valor padrão é 3.
    • PERIOD pela frequência (em segundos) para executar a sondagem. Especifique um valor de 1 segundo a 240 segundos. O valor padrão é de 10 segundos.
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud run services replace service.yaml