用于工作器池的手动伸缩

本页面介绍了如何手动扩缩工作器池。

概览

手动扩缩可让您设置特定实例数量,而无需重新部署。这使您可以选择使用外部系统编写自己的扩缩逻辑。如需查看相关示例,请参阅 Kafka 自动扩缩器

使用手动扩缩时的结算注意事项

如果您使用手动扩缩,那么即使您请求的所有实例恰好处于空闲状态,系统也会将这些实例作为活跃实例来进行结算。如需了解完整的结算详细信息,请参阅价格页面

所需的角色

如需获得部署 Cloud Run 工作器池所需的权限,请让您的管理员为您授予以下 IAM 角色:

如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色Cloud Run IAM 权限。如果您的 Cloud Run 工作器池与Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限管理访问权限

配置扩缩

更改扩缩模式或更改手动实例数量不会创建新的修订版本。

如需配置扩缩模式,请使用 Google Cloud 控制台或 Google Cloud CLI:

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud Run:

    转到 Cloud Run

  2. 如果您要配置新的工作器池,请从菜单中选择工作器池,然后点击部署容器。如果您要配置现有工作器池,请点击该工作器池以显示其详细信息窗格,然后点击详细信息面板右上角的扩缩旁边的笔图标。

  3. 找到扩缩表单(对于新工作器池)或修改扩缩表单(对于现有工作器池)。

    图片

  4. 在标记为实例数的字段中,指定服务的容器实例数。

  5. 完成规范。

  6. 点击创建(对于新工作器池)或保存(对于现有工作器池)。

gcloud

如需为新的工作器池指定扩缩,请使用 deploy 命令:

gcloud beta run worker-pools deploy WORKER_POOL \
    --scaling=INSTANCE_COUNT \
    --image IMAGE_URL

替换以下内容:

  • WORKER_POOL:工作器池的名称。
  • INSTANCE_COUNT:工作器池的实例数。这会将工作器池设置为手动扩缩。指定值 0 可停用工作器池。
  • IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest

使用以下 update 命令为现有工作器池指定扩缩:

gcloud beta run worker-pools update WORKER_POOL \
   --scaling=INSTANCE_COUNT

Terraform

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"
  launch_stage = "BETA"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }
  scaling {
    scaling_mode = "MANUAL"
    manual_instance_count = "INSTANCE_COUNT"
  }
}

替换以下内容:

  • WORKER_POOL:工作器池的名称。
  • REGION: Google Cloud 区域,例如 europe-west1
  • IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • INSTANCE_COUNT:工作器池的实例数。这会将工作器池设置为手动扩缩。指定值 0 可停用工作器池。

查看工作器池的扩缩配置

  1. 在 Google Cloud 控制台中,前往 Cloud Run:

    转到 Cloud Run

  2. 点击工作器池以显示已部署的工作器池列表。

  3. 点击要检查的工作器池,以显示其详细信息窗格。

  4. 当前扩缩设置会显示在工作器池修订版本列表上方:扩缩:手动(实例数:)

停用工作器池

如需停用工作器池,请使用以下命令将扩缩设置为零:

gcloud beta run worker-pools update WORKER_POOL --scaling=0

WORKER_POOL 替换为工作器池的名称。