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

Esta página descreve como definir o número máximo de instâncias que podem ser usadas para o seu serviço do Cloud Run através do comportamento de dimensionamento automático do Cloud Run predefinido. Para dimensionar manualmente o seu serviço, consulte o artigo Dimensionamento manual.

A especificação do número máximo de instâncias no Cloud Run permite limitar o dimensionamento do seu serviço em resposta a pedidos recebidos, embora esta definição máxima possa ser excedida durante um breve período devido a circunstâncias como picos de tráfego.

Pode usar esta definição como forma de controlar os custos ou limitar o número de ligações a um serviço de apoio, como uma base de dados.

Para obter informações sobre os limites máximos de instâncias que se podem aplicar ao seu serviço, consulte o artigo Limites máximos de instâncias.

Para mais informações sobre a forma como o Cloud Run dimensiona automaticamente as instâncias de contentores, consulte o artigo Dimensionamento automático de instâncias.

Aplique o número máximo de instâncias ao nível do serviço em vez de ao nível da revisão

Pode configurar instâncias máximas ao nível do serviço ou ao nível da revisão. A Google recomenda que use o número máximo de instâncias ao nível do serviço, a menos que tenha uma necessidade específica de limitar as instâncias ao nível da revisão.

Quando aplica o número máximo de instâncias, as definições entram em vigor da seguinte forma:

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

Revisões etiquetadas e máximo de instâncias ao nível do serviço

As revisões etiquetadas são iniciadas, mas só contam para o número máximo de instâncias ao nível do serviço se fizerem parte de uma divisão de tráfego.

Funções necessárias

Para receber as autorizações de que precisa para configurar e implementar serviços do Cloud Run, peça ao seu administrador para lhe conceder as seguintes funções de IAM:

Se estiver a implementar um serviço ou uma função a partir do código fonte, também tem de ter funções adicionais concedidas no seu projeto e na conta de serviço do Cloud Build.

Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se o seu serviço do Cloud Run interage com Google Cloud APIs, como as bibliotecas cliente da Google Cloud, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.

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

Pode alterar a definição de instâncias máximas através da Google Cloud consola, da CLI Google Cloud ou de um ficheiro YAML quando cria um novo serviço ou implementa uma nova revisão.

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Se estiver a configurar um novo serviço, selecione Serviços e clique em Implementar contentor para apresentar o formulário Criar serviço. Localize o formulário Dimensionamento do serviço.

  3. Se estiver a configurar um serviço existente, clique no serviço para apresentar o respetivo painel de detalhes e, de seguida, clique em Editar definições de escalabilidade do nível de serviço na parte superior direita do painel de detalhes.

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

  5. Clique em Criar para um novo serviço ou em Implementar para um serviço existente.

gcloud

Pode atualizar o número máximo de instâncias de um determinado serviço através do seguinte comando:

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

Substitua o seguinte:

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

Também pode definir o número máximo de instâncias durante a implementação através do comando:

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

Substitua o seguinte:

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

YAML

Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também vão receber automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    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'

    Substitua o seguinte:

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

    gcloud run services replace service.yaml

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

Para ver as definições de instâncias máximas ao nível do serviço atuais para o seu serviço do Cloud Run:

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

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

  3. Veja a definição atual na parte superior direita do painel de detalhes do serviço, junto a Ajuste de escala.

gcloud

  1. Use o seguinte comando:

    gcloud run services describe SERVICE
  2. Localize o valor de Scaling: Auto (Min: MIN_VALUE, Max: MAX_VALUE) na configuração devolvida.

Configure o número máximo de instâncias ao nível da revisão

Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também vão receber automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.

Por predefinição, as revisões do Cloud Run estão configuradas para serem dimensionadas até um máximo de 100 instâncias.

Pode alterar a definição de instâncias máximas através da Google Cloud consola, da CLI Google Cloud ou de um ficheiro YAML quando cria um novo serviço ou implementa uma nova revisão.

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

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

  3. Clique em Editar e implementar nova revisão para apresentar o formulário de implementação de revisões.

  4. Clique no separador Contentor.

  5. Localize a secção Ajuste de revisões. No campo com a etiqueta Número máximo de instâncias, especifique o número máximo de instâncias de contentores.

  6. Clique em Implementar.

gcloud

Pode atualizar o número máximo de instâncias de um determinado serviço através do seguinte comando:

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

Substitua o seguinte:

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

YAML

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    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

    Substitua o seguinte:

    • SERVICE: o nome do seu serviço do Cloud Run
    • MAX-INSTANCE: o número máximo necessário de instâncias do contentor, usando qualquer valor inteiro de 1 ao limite máximo.
    • REVISION com um novo nome de revisão ou elimine-o (se existir). Se fornecer um novo nome de revisão, este tem de cumprir os seguintes critérios:
      • Começa com SERVICE-
      • Contém apenas letras minúsculas, números e -
      • Não termina com um -
      • Não exceder 63 carateres
  3. Crie ou atualize o serviço com o seguinte comando:

    gcloud run services replace service.yaml

Veja as definições de instâncias máximas ao nível da revisão

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

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

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

  3. Clique no separador Revisões.

  4. No painel de detalhes à direita, veja a definição Máximo de instâncias de revisão indicada no separador Contentor.

gcloud

  1. Use o seguinte comando:

    gcloud run services describe SERVICE
  2. Localize o valor de Max instances: na configuração devolvida.

Use instâncias mínimas ou máximas ao nível do serviço e da revisão

A tabela seguinte mostra o comportamento se combinar instâncias máximas ao nível do serviço com instâncias mínimas ou máximas ao nível da revisão:

Definição ao nível do serviço Definição ao nível da revisão Comportamento
Máximo de instâncias ao nível do serviço definido Máximo de instâncias ao nível da revisão definido O limite máximo de instâncias efetivo é o valor inferior entre o número máximo de instâncias ao nível da revisão e o número máximo de instâncias ao nível do serviço.
Máximo de instâncias ao nível do serviço definido Instâncias mínimas ao nível da revisão definidas Se o número máximo de instâncias ao nível do serviço estiver definido para um valor inferior ao número mínimo de instâncias ao nível da revisão, a revisão inicia instâncias até ao número máximo de instâncias ao nível do serviço e não atinge o número mínimo de instâncias ao nível da revisão configurado.

Use o número máximo de instâncias ao nível do serviço com a divisão de tráfego

Se usar a divisão de tráfego, as instâncias máximas ao nível do serviço são distribuídas pelas revisões com base na proporção da divisão de tráfego. Por exemplo, se o número máximo de instâncias ao nível do serviço for 100, uma divisão de tráfego de 50/50 atribui 50 instâncias máximas ao nível do serviço a cada revisão. A tabela seguinte mostra um cenário de configuração de exemplo:

Configuração de exemplo Comportamento resultante
Máximo de instâncias definido ao nível do serviço (cenário em que não existem definições ao 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 das instâncias máximas ao nível do serviço é atribuída a cada revisão. O número máximo de instâncias eficazes para cada revisão é fixo com base na divisão de tráfego. O número máximo de instâncias para a revisão A é 10, para a revisão B é 10 e para a revisão C é 80.