Definir o número máximo de instâncias para serviços

Nesta página, descrevemos como definir o número máximo de instâncias que podem ser usadas para o serviço do Cloud Run usando o comportamento padrão do escalonamento automático do Cloud Run. Para escalonar manualmente seu serviço, consulte Escalonamento manual.

Especificar o máximo de instâncias no Cloud Run permite limitar o escalonamento do serviço em resposta a solicitações recebidas, embora essa configuração máxima possa ser excedida por um breve período devido a circunstâncias como picos de tráfego.

Use essa configuração como uma maneira de controlar custos ou de limitar o número de conexões com um serviço de apoio, como um banco de dados.

Para informações sobre os limites máximos de instâncias que podem ser aplicáveis ao seu serviço, consulte Limites máximos de instâncias.

Para mais informações sobre como o Cloud Run faz o escalonamento automático das instâncias de contêiner, consulte Escalonamento automático de instâncias.

Como aplicar instâncias máximas no nível de serviço em comparação com o nível de revisão

É possível configurar instâncias máximas no nível de serviço ou de revisão. O Google recomenda que você use o máximo de instâncias no nível de serviço, a menos que tenha uma necessidade específica de limitar as instâncias no nível da revisão.

Ao aplicar o número máximo de instâncias, as configurações entram em vigor da seguinte maneira:

  • Nível de serviço: imediatamente
  • Nível de revisão: após a implantação da revisão

Revisões marcadas e instâncias máximas no nível de serviço

As revisões marcadas são iniciadas, mas só contam para as instâncias máximas no nível de serviço se fizerem parte de uma divisão de tráfego.

Funções exigidas

Para receber as permissões necessárias para configurar e implantar os serviços do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o serviço do Cloud Run interage com APIs doGoogle Cloud , como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.

Configurar o número máximo de instâncias no nível do serviço

É possível mudar a configuração de número máximo de instâncias usando o console Google Cloud , a Google Cloud CLI ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão.

Console

  1. No Google Cloud console, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Se você estiver configurando um novo serviço, selecione Serviços e clique em Implantar contêiner para mostrar o formulário Criar serviço. Localize o formulário Escalonamento de serviço.

  3. Se você estiver configurando um serviço atual, clique nele para exibir o painel de detalhes e, em seguida, clique em Editar configurações de escalonamento no nível do serviço no canto superior direito do painel de detalhes.

  4. No campo Número máximo de instâncias, especifique o número máximo necessário de instâncias de contêiner, usando qualquer valor inteiro de 1 ao limite máximo possível para seu serviço.

  5. Clique em Criar para um novo serviço ou em Implantar para um serviço atual.

gcloud

É possível atualizar o número máximo de instâncias de um determinado serviço usando o seguinte comando:

gcloud beta run services update SERVICE --max MAX-VALUE

Substituir

  • SERVICE: o nome do serviço.
  • MAX-VALUE: o número máximo necessário de instâncias de contêiner, usando qualquer valor inteiro de 1 ao limite máximo possível para seu serviço.

Também é possível definir o número máximo de instâncias durante a implantação usando o comando:

gcloud beta run deploy --image IMAGE_URL --max MAX-VALUE

Substituir

  • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • MAX-VALUE: o número máximo necessário de instâncias de contêiner, usando qualquer valor inteiro de 1 ao limite máximo.

YAML

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.

  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 services describe SERVICE --format export > service.yaml
  2. Atualize o atributo run.googleapis.com/maxScale::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
        run.googleapis.com/maxScale: 'MAX-INSTANCE'

    Substituir

    • SERVICE: o nome do seu serviço do Cloud Run
    • MAX-INSTANCE: o número máximo necessário de instâncias de contêiner, usando qualquer valor inteiro de 1 ao limite máximo possível para seu serviço.
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run services replace service.yaml

Mostrar instâncias máximas no nível de serviço

Para ver as configurações atuais de instâncias máximas no nível de serviço do serviço do Cloud Run:

Console

  1. No Google Cloud console, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Clique no serviço para abrir o painel Detalhes do serviço.

  3. Confira a configuração atual no canto superior direito do painel de detalhes do serviço, ao lado de Escalonamento.

gcloud

  1. Use o comando a seguir:

    gcloud run services describe SERVICE
  2. Localize o valor de Escalonamento: automático (mín.: MIN_VALUE, máx.: MAX_VALUE) na configuração retornada.

Configurar o máximo de instâncias no nível da revisã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.

Por padrão, os serviços do Cloud Run são configurados para escalonar verticalmente até um máximo de 100 instâncias.

É possível mudar a configuração de número máximo de instâncias usando o console Google Cloud , a Google Cloud CLI ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão.

Console

  1. No Google Cloud console, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Encontre e clique no serviço que você quer atualizar na lista de serviços para abrir os detalhes dele.

  3. Clique em Editar e implantar nova revisão para exibir o formulário de implantação da revisão.

  4. Clique na guia Contêiner.

  5. Localize a seção Escalonamento de revisão. No campo Número máximo de instâncias, especifique o número máximo de instâncias de contêiner.

  6. Clique em Implantar.

gcloud

É possível atualizar o número máximo de instâncias de um determinado serviço usando o seguinte comando:

gcloud beta run services update SERVICE --max-instances MAX-VALUE

Substituir

  • SERVICE: o nome do serviço.
  • MAX-VALUE: o número máximo necessário de instâncias de contêiner, usando qualquer valor inteiro de 1 ao limite máximo.

YAML

  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 services describe SERVICE --format export > service.yaml
  2. Atualize o atributo autoscaling.knative.dev/maxScale::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
          annotations:
            autoscaling.knative.dev/maxScale: 'MAX-INSTANCE'
          name: REVISION

    Substituir

    • SERVICE: o nome do seu serviço do Cloud Run
    • MAX-INSTANCE: o número máximo necessário de instâncias de contêiner, usando qualquer valor inteiro de 1 ao limite máximo.
    • 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. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run services replace service.yaml

Ver configurações máximas de instâncias no nível da revisão

Para ver as configurações atuais de instâncias máximas no nível da revisão para o serviço do Cloud Run:

Console

  1. No Google Cloud console, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Clique no serviço para abrir o painel Detalhes do serviço.

  3. Clique na guia Revisões.

  4. No painel de detalhes à direita, confira a configuração Instâncias máximas da revisão listada na guia Contêiner.

gcloud

  1. Use o comando a seguir:

    gcloud run services describe SERVICE
  2. Localize o valor de Instâncias máximas na configuração retornada.

Usar instâncias mínimas ou máximas no nível de serviço e de revisão

A tabela a seguir mostra o comportamento se você combinar instâncias máximas no nível de serviço com instâncias mínimas ou máximas no nível da revisão:

Configuração no nível do serviço Configuração no nível da revisão Comportamento
Número máximo de instâncias no nível de serviço definido Máximo de instâncias no nível da revisão definido O limite máximo efetivo de instâncias é o menor valor entre as instâncias máximas no nível de revisão e as instâncias máximas no nível de serviço.
Número máximo de instâncias no nível de serviço definido O número mínimo de instâncias no nível da revisão foi definido. Se o máximo de instâncias no nível de serviço for definido como um valor menor que o mínimo de instâncias no nível de revisão, a revisão vai iniciar instâncias até o máximo de instâncias no nível de serviço e não vai atingir o mínimo de instâncias configurado no nível de revisão.

Usar instâncias máximas de nível de serviço com divisão de tráfego

Se você usar a divisão de tráfego, as instâncias máximas de nível de serviço serão distribuídas entre as revisões com base na proporção dessa divisão. Por exemplo, se o máximo de instâncias no nível de serviço for igual a 100, uma divisão de tráfego de 50/50 alocará 50 instâncias máximas no nível de serviço para cada revisão. A tabela a seguir mostra um exemplo de cenário de configuração:

Exemplo de configuração Comportamento resultante
Máximo de instâncias no nível de serviço definido (cenário sem configurações no nível da revisão): 100
  • Divisão de tráfego para a revisão A: 10%
  • Divisão de tráfego para a revisão B: 10%
  • Divisão de tráfego para a revisão C : 80%
Uma parte do máximo de instâncias no nível de serviço é alocada para cada revisão. O número máximo de instâncias efetivas para cada revisão é fixo com base na divisão de tráfego. O máximo de instâncias para a revisão A é 10, para a revisão B é 10 e para a revisão C é 80.