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:
-
Programador do Cloud Run (
roles/run.developer
) no serviço Cloud Run -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na identidade do serviço
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
Na Google Cloud consola, aceda ao Cloud Run:
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.
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.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.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 formatoLOCATION-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.
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
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.
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
Na Google Cloud consola, aceda ao Cloud Run:
Clique nesse serviço para abrir o painel Detalhes do serviço.
Veja a definição atual na parte superior direita do painel de detalhes do serviço, junto a Ajuste de escala.
gcloud
Use o seguinte comando:
gcloud run services describe SERVICE
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
Na Google Cloud consola, aceda ao Cloud Run:
Encontre e clique no serviço que quer atualizar na lista de serviços para abrir os detalhes desse serviço.
Clique em Editar e implementar nova revisão para apresentar o formulário de implementação de revisões.
Clique no separador Contentor.
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.
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
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
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
- Começa com
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
Na Google Cloud consola, aceda ao Cloud Run:
Clique nesse serviço para abrir o painel Detalhes do serviço.
Clique no separador Revisões.
No painel de detalhes à direita, veja a definição Máximo de instâncias de revisão indicada no separador Contentor.
gcloud
Use o seguinte comando:
gcloud run services describe SERVICE
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
|
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. |