Nesta página, mostramos como escalonar manualmente o pool de workers.
Visão geral
O escalonamento manual permite definir uma contagem de instâncias específica sem exigir a reimplantação. Isso oferece a opção de gravar sua própria lógica de escalonamento usando um sistema externo. Consulte o Kafka Autoscaler para um exemplo.
Considerações de faturamento ao usar o escalonamento manual
Ao usar o escalonamento manual, todas as instâncias solicitadas são faturadas como ativas, mesmo que estejam inativas. Para detalhes completos de faturamento, consulte a página de preços.
Funções exigidas
Para receber as permissões necessárias para implantar pools de workers 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 - Leitor do Artifact Registry (
roles/artifactregistry.reader) no repositório do Artifact Registry da imagem de contêiner implantada (se aplicável)
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 pool de workers 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.
Configurar o escalonamento
A mudança do modo de escalonamento ou da contagem manual de instâncias não cria uma nova revisão.
Para configurar o modo de escalonamento, use o Google Cloud console, a Google Cloud CLI, YAML, o Terraform ou a API REST:
Console
No Google Cloud console, acesse o Cloud Run:
Se você estiver configurando um novo pool de workers, selecione Pools de workers no menu e clique em Implantar contêiner. Se você estiver configurando um pool de workers atual, clique nele para mostrar o painel de detalhes e, em seguida, clique no ícone de caneta ao lado de Escalonamento no canto superior direito do painel de detalhes.
Localize o formulário Escalonamento (para um novo pool de workers) ou o formulário Editar escalonamento para um pool de workers atual.
No campo Número de instâncias, especifique o número de instâncias de contêiner do serviço.
Conclua a especificação.
Clique em Criar para um novo pool de workers ou em Salvar para um pool de workers atual.
gcloud
Para especificar o escalonamento de um novo pool de workers, use o comando de implantação:
gcloud run worker-pools deploy WORKER_POOL \ --instances=INSTANCE_COUNT \ --image IMAGE_URL
Substitua:
- WORKER_POOL: o nome do pool de workers.
- INSTANCE_COUNT: o número de instâncias do pool de workers.
Isso define o pool de workers para o escalonamento manual. Especifique um valor de
0para desativar o pool de workers. - IMAGE_URL: uma referência à imagem do contêiner que
contém o pool de workers, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
Especifique o escalonamento de um pool de workers atual usando o seguinte comando de atualização:
gcloud run worker-pools update WORKER_POOL \ --instances=INSTANCE_COUNT
YAML
Se você estiver criando um novo pool de workers, pule esta etapa. Se você estiver atualizando um pool de workers atual, faça o download da configuração YAML correspondente:
gcloud run worker-pools describe WORKER_POOL --format export > workerpool.yaml
O exemplo a seguir contém a configuração YAML:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL annotations: run.googleapis.com/manualInstanceCount: `INSTANCE_COUNT`
Substitua:
- WORKER_POOL: o nome do pool de workers do Cloud Run.
- INSTANCE_COUNT: o número de instâncias que você está escalonando manualmente
para o pool de workers. Especifique um valor de
0para desativar o pool de workers.
Crie ou atualize o pool de workers usando o seguinte comando:
gcloud run worker-pools replace workerpool.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
scaling {
scaling_mode = "MANUAL"
manual_instance_count = "INSTANCE_COUNT"
}
}
Substitua:
- WORKER_POOL: o nome do pool de workers.
- REGION: a Google Cloud região, por exemplo,
europe-west1. - IMAGE_URL: uma referência à imagem do contêiner que
contém o pool de workers, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest. - INSTANCE_COUNT: o número de instâncias do pool de workers.
Isso define o pool de workers para o escalonamento manual. Especifique um valor de
0para desativar o pool de workers.
API REST
Para atualizar o número de instâncias de um determinado pool de workers, envie uma PATCH
solicitação HTTP para a API Cloud Run Admin
workerPools endpoint.
Por exemplo, usando curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{"scaling":{"manualInstanceCount":INSTANCE_COUNT }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL?update_mask=scaling.manualInstanceCount
Substitua:
- ACCESS_TOKEN: um token de acesso válido para uma conta que
tem as permissões do IAM para atualizar um pool de workers.
Por exemplo, se você fez login em
gcloud, é possível recuperar um token de acesso usandogcloud auth print-access-token. Em uma instância de contêiner do Cloud Run, é possível recuperar um token de acesso por meio do servidor de metadados da instância de contêiner. - INSTANCE_COUNT: o número de instâncias do pool de workers.
- PROJECT_ID: o Google Cloud ID do projeto.
- REGION: a Google Cloud região em que o pool de workers está implantado.
- WORKER_POOL: o nome do pool de workers.
Conferir a configuração de escalonamento de um pool de workers
No Google Cloud console, acesse o Cloud Run:
Clique em Pools de workers para mostrar a lista de pools de workers implantados.
Clique no pool de workers que você quer examinar para mostrar o painel de detalhes.
A configuração de escalonamento atual é mostrada acima da lista de revisões do pool de workers: Escalonamento: manual (instâncias: ).
Desativar um pool de workers
Para desativar um pool de workers, use o comando a seguir para definir o escalonamento como zero:
gcloud run worker-pools update WORKER_POOL --instances=0
Substitua WORKER_POOL pelo nome do pool de workers.