Número mínimo de instâncias (serviços)

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

Para serviços do Cloud Run, o Cloud Run por padrão balança no número de instâncias com base no número de solicitações recebidas. No entanto, se o app exigir latência reduzida, e você quiser limitar o número de inicializações a frio, altere esse comportamento padrão especificando um número mínimo de instâncias de contêiner a serem mantidas quentes e prontas para exibir solicitações. Consulte as dicas gerais de desenvolvimento para mais detalhes sobre essa otimização.

As instâncias em execução dessa maneira geram custos de faturamento. Como essas cobranças são muito previsíveis, o Google recomenda a compra de um desconto por uso contínuo.

As instâncias mínimas manterão a execução em inatividade, prontas para atender às solicitações. É possível configurar CPU para ser sempre alocada se você precisar da CPU fora das solicitações. É possível reiniciar as instâncias mínimas a qualquer momento.

Nesta página, você verá como ativar instâncias ociosas para o serviço usando a configuração mínima de instâncias.

Revisões e instâncias mínimas

As instâncias mínimas serão iniciadas apenas se a revisão for endereçável. Uma revisão será endereçável se uma das seguintes condições for verdadeira:

  • Ela recebe uma porcentagem do tráfego.
  • Uma tag de revisão foi atribuída a ela.

Como configurar e atualizar instâncias mínimas

Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também receberão automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.

Por padrão, as instâncias de contêiner têm min-instances desativado, com uma configuração de 0. É possível alterar esse padrão usando o console do Google Cloud, a linha de comando gcloud ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão:

Console

  1. Acessar o Cloud Run

  2. Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Se você estiver configurando um novo serviço, preencha a página inicial de configurações de serviço conforme desejado e clique em Contêiner, conexões, segurança para expandir a página de configuração do serviço.

  4. Clique na guia Contêiner.

    imagem

  5. No campo Número mínimo de instâncias, especifique o valor desejado de instâncias de contêiner a serem mantidas quentes e prontas para receber solicitações.

  6. Clique em Criar ou Implantar.

Linha de comando

É possível atualizar o valor de min-instance de um determinado serviço usando o seguinte comando:

gcloud run services update SERVICE --min-instances MIN-VALUE

Substitua:

  • SERVICE pelo nome do serviço;
  • MIN-VALUE pelo número pretendido de instâncias de contêiner a serem mantidas quentes e prontas para receber solicitações. Especifique default para limpar qualquer configuração mínima de instância.

Também é possível definir min-instance durante a implantação usando este comando:

gcloud run deploy --image IMAGE_URL --min-instances MIN-VALUE

Substitua:

  • IMAGE_URL por uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest;
  • MIN-VALUE pelo número pretendido de instâncias de contêiner a serem mantidas quentes e prontas para receber solicitações. Especifique default para limpar qualquer configuração mínima de instância.

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 visualizar e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Atualize o atributo autoscaling.knative.dev/minScale::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            autoscaling.knative.dev/minScale: 'MIN-INSTANCE'
          name: REVISION

    Substitua:

    • SERVICE pelo nome do serviço do Cloud Run;
    • MIN-INSTANCE pelo número pretendido de instâncias a serem mantidas quentes e prontas para receber solicitações.
    • REVISION por um novo nome de revisão ou excluí-lo (se houver). Se você fornecer um novo nome de revisão, ele precisará atender aos seguintes critérios:
      • Começa com SERVICE-
      • Contém apenas letras minúsculas, números e -
      • Não termina com um -
      • Não excede 63 caracteres
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud run services replace service.yaml

Terraform

Adicione o seguinte a um recurso google_cloud_run_service na configuração do Terraform, no atributo template. Substitua 1 pelo número mínimo desejado de instâncias do serviço.

metadata {
  annotations = {

    # Max instances
    # https://cloud.google.com/run/docs/configuring/max-instances
    "autoscaling.knative.dev/maxScale" = 10

    # Min instances
    # https://cloud.google.com/run/docs/configuring/min-instances
    "autoscaling.knative.dev/minScale" = 1

    # If true, garbage-collect CPU when once a request finishes
    # https://cloud.google.com/run/docs/configuring/cpu-allocation
    "run.googleapis.com/cpu-throttling" = false
  }
}

Para aplicar a configuração do Terraform a um projeto do Google Cloud, siga estas etapas:

  1. Inicie o Cloud Shell.
  2. Defina o projeto do Google Cloud em que a configuração do Terraform será aplicada:
    export GOOGLE_CLOUD_PROJECT=PROJECT_ID
    
  3. Crie um diretório e abra um novo arquivo. O nome do arquivo precisa ter a extensão .tf, por exemplo: main.tf:
    mkdir DIRECTORY && cd DIRECTORY && nano main.tf
    
  4. Copie a amostra para main.tf.
  5. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  6. Salve as mudanças pressionando Ctrl-x e depois y.
  7. Inicialize o Terraform:
    terraform init
  8. Revise a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expectativas:
    terraform plan

    Faça as correções necessárias na configuração.

  9. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply

    Aguarde até que o Terraform exiba a mensagem "Apply complete!".

  10. Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.

Ver configurações mínimas de instâncias

Para ver as configurações atuais atuais de instâncias no serviço do Cloud Run:

Console

  1. Acesse o Cloud Run

  2. Clique no serviço de seu interesse para abrir a página Detalhes do serviço.

  3. Clique na guia Revisões.

  4. No painel de detalhes à direita, o número mínimo de configuração de instâncias está listado na guia Contêiner.

Linha de comando

  1. Use o comando a seguir:

    gcloud run services describe SERVICE
  2. Localize o número mínimo de configurações de instâncias na configuração retornada.