Escalonamento manual para pools de workers

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:

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

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

    Acessar o Cloud Run

  2. 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.

  3. Localize o formulário Escalonamento (para um novo pool de workers) ou o formulário Editar escalonamento para um pool de workers atual.

    imagem

  4. No campo Número de instâncias, especifique o número de instâncias de contêiner do serviço.

  5. Conclua a especificação.

  6. 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 0 para 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

  1. 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
  2. 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 0 para desativar o pool de workers.
  3. 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 0 para 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 usando gcloud 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

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

    Acessar o Cloud Run

  2. Clique em Pools de workers para mostrar a lista de pools de workers implantados.

  3. Clique no pool de workers que você quer examinar para mostrar o painel de detalhes.

  4. 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.