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 de escalonamento automático do Cloud Run padrão. Para escalonar manualmente o 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.
Aplicar o máximo de instâncias no nível de serviço em comparação com o nível de revisão
É possível configurar o máximo de instâncias no nível de serviço ou no nível de revisão. O Google recomenda que você use o máximo de instâncias no nível de serviço para limitar o número de instâncias de um serviço, a menos que você tenha uma necessidade específica de limitar as instâncias no nível de revisão. Por padrão, o Cloud Run define 100 instâncias para cada revisão. Para permitir que o serviço seja escalonado para mais instâncias, modifique esse valor.
Ao aplicar o 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 o máximo de instâncias no nível de serviço
As revisões marcadas são iniciadas, mas só contam para o máximo de instâncias 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:
- Desenvolvedor do Cloud Run (
roles/run.developer) no serviço Cloud Run - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na identidade do serviço
Se você estiver implantando um serviço ou função do código-fonte, você também precisará ter outros papéis concedidos no projeto e na conta de serviço do Cloud Build.
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 Google Cloud APIs, 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.
Considerações sobre o custo
A configuração de número máximo de instâncias permite estabelecer um limite de segurança de custos para gerenciar o custo. Definir um número máximo maior prioriza a disponibilidade, mas introduz possíveis riscos de faturamento devido a picos de tráfego inesperados ou configurações incorretas. Como uma proteção de custos, configure essa configuração no nível de serviço quando você implantar o serviço inicialmente. Sugerimos começar com um valor máximo de instâncias de 3 para proteger seu orçamento contra picos inesperados.
Consulte os preços do Cloud Run ou estime os custos com a calculadora de preços para mais informações. Para outras ferramentas de controle de custos, consulte cotas de alocação de recursos ou orçamentos e alertas de faturamento.
Configurar o máximo de instâncias no nível de serviço
É possível alterar a configuração de número máximo de instâncias usando o Google Cloud console, a Google Cloud CLI, o YAML ou o Terraform ao criar um novo serviço ou implantar uma nova revisão.
Console
Noconsole, acesse a página Serviços do Cloud Run: Google Cloud
Se você estiver configurando um novo serviço, clique em Implantar contêiner para mostrar o formulário Criar serviço. Localize o formulário Escalonamento de serviços.
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.
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
1ao limite máximo possível para seu serviço. Para desativar o máximo de instâncias no nível de serviço, limpe todos os valores definidos no campo Número máximo de instâncias.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 run services update SERVICE --max MAX-VALUE
Substitua:
- SERVICE: o nome do seu serviço.
- MAX-VALUE: o número máximo necessário de instâncias de contêiner, usando qualquer valor inteiro de
1ao limite máximo possível para seu serviço. Para desativar o máximo de instâncias no nível de serviço, defina esse valor como0.
Também é possível definir o número máximo de instâncias durante a implantação usando o seguinte comando:
gcloud run deploy --image IMAGE_URL --max MAX-VALUE
Substitua:
- IMAGE_URL: 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 segue o formato deLOCATION-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
1ao 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.
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
Atualize o atributo
run.googleapis.com/maxScale::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/maxScale: 'MAX-INSTANCE'
Substitua:
- 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
1ao limite máximo possível para seu serviço. Para desativar o máximo de instâncias no nível de serviço, defina esse valor como0.
Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
O comando
gcloud run services replaceusa o arquivoservice.yamlpor padrão, se presente.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a umgoogle_cloud_run_v2_service
recurso na configuração do Terraform:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
scaling {
max_instance_count = MAX_INSTANCE
}
template {
containers {
image = "IMAGE_URL"
}
}
}
Substitua:
- SERVICE: o nome do seu serviço do Cloud Run.
- REGION: a Google Cloud região, por exemplo,
europe-west1. - MAX_INSTANCE: o número máximo necessário de instâncias de contêiner, usando qualquer valor inteiro de
1ao limite máximo. - IMAGE_URL: 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 segue o formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Mostrar o máximo de instâncias no nível de serviço
Para ver as configurações atuais máximas de instâncias no nível de serviço do Cloud Run:
Console
Noconsole, acesse a página Serviços do Cloud Run: Google Cloud
Clique nesse serviço para abrir o painel Detalhes do serviço.
Confira a configuração atual no canto superior direito do painel de detalhes do serviço, ao lado de Escalonamento.
gcloud
Use o comando a seguir:
gcloud run services describe SERVICE
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 de 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, as revisões do Cloud Run são configuradas para escalonar verticalmente até um máximo de 100 instâncias.
É possível alterar a configuração de número máximo de instâncias usando o Google Cloud console, a Google Cloud CLI ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão.
Console
No Google Cloud console, acesse o Cloud Run:
Encontre e clique no serviço que você quer atualizar na lista de serviços para abrir os detalhes dele.
Clique em Editar e implantar nova revisão para exibir o formulário de implantação da revisão.
Clique na guia Contêiner.
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.
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 run services update SERVICE --max-instances MAX-VALUE
Substitua:
- SERVICE: o nome do seu serviço.
- MAX-VALUE: o número máximo necessário de instâncias de contêiner, usando qualquer valor inteiro de
1ao limite máximo.
YAML
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
Atualize o atributo
autoscaling.knative.dev/maxScale::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: 'MAX-INSTANCE' name: REVISION
Substitua:
- 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
1ao 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
- Começa com
Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
O comando
gcloud run services replaceusa o arquivoservice.yamlpor padrão, se presente.
Mostrar as configurações máximas de instâncias no nível de revisão
Para ver as configurações atuais máximas de instâncias no nível de revisão do Cloud Run:
Console
Noconsole, acesse a página Serviços do Cloud Run: Google Cloud
Clique nesse serviço para abrir o painel Detalhes do serviço.
Clique na guia Revisões.
No painel de detalhes à direita, confira a configuração Máximo de instâncias da revisão listada na guia Contêiner.
gcloud
Use o comando a seguir:
gcloud run services describe SERVICE
Localize o valor de Máximo de instâncias 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 o máximo de instâncias no nível de serviço com o mínimo ou o máximo de instâncias no nível de revisão:
| Configuração no nível de serviço | Configuração no nível de revisão | Comportamento |
|---|---|---|
| Máximo de instâncias no nível de serviço definido | Máximo de instâncias no nível de revisão definido | O limite máximo de instâncias efetivo é o menor valor entre o máximo de instâncias no nível de revisão e o máximo de instâncias no nível de serviço. |
| Máximo de instâncias no nível de serviço definido | Mínimo de instâncias no nível de revisão definido | Se o máximo de instâncias no nível de serviço estiver definido como um valor menor que o mínimo de instâncias no nível de revisão, a revisão iniciará instâncias até o máximo de instâncias no nível de serviço e não atingirá o mínimo de instâncias configurado no nível de revisão. |
Usar o máximo de instâncias no nível de serviço com divisão de tráfego
Se você usar a divisão de tráfego, o máximo de instâncias no nível de serviço será distribuído 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 em que não há configurações no nível de revisão): 100
|
Uma parte do máximo de instâncias no nível de serviço é alocada para cada revisão. O máximo de instâncias efetivo 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, a revisão B é 10 e a revisão C é 80. |