实例(服务)数上限

本页面介绍如何设置可用于 Cloud Run 服务的实例数上限。通过在 Cloud Run 中指定实例数量上限,您可以限制服务响应传入请求的扩缩范围。不过,由于流量高峰等原因,实例数量可能会在短时间内超过此上限设置。使用此设置可以控制您的费用或限制与备份服务(如数据库)的连接数。

如需了解可能适用于您的服务的实例数上限,请参阅实例数上限

如需详细了解 Cloud Run 自动扩缩容器实例的方式,请参阅实例自动扩缩

设置和更新实例数量上限

任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。

默认情况下,Cloud Run 服务配置为最多扩容到 100 个实例。

您可以在创建新服务部署新修订版本时使用 Google Cloud 控制台、gcloud 命令行或 YAML 文件来更改实例数上限设置。

控制台

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

    转到 Cloud Run

  2. 如果您是要配置一个新服务来作为部署目标,请点击创建服务。如果您要配置现有服务,请点击该服务,然后点击修改和部署新的修订版本

  3. 如果您要配置新服务,请根据需要填写初始服务设置页面,然后点击容器、网络、安全性以展开服务配置页面。

  4. 点击容器标签页。

    图片

    • 在“实例数上限”字段中,使用从 1最大限制的任意整数值指定所需的实例数量上限
  5. 点击创建部署

命令行

您可以使用以下命令更新给定服务的实例数量上限

gcloud run services update SERVICE --max-instances MAX-VALUE

替换

  • SERVICE 替换为您的服务名称。
  • MAX-VALUE 替换为所需的容器实例数上限(使用 1上限的任意整数值)。指定 default 可清除任何实例数上限设置,并恢复默认的 100 个实例。

您还可以使用以下命令设置部署期间的实例数量上限:

gcloud run deploy --image IMAGE_URL --max-instances MAX-VALUE

替换

  • IMAGE_URL 替换为对容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/hello:latest。 如果您使用 Artifact Registry,则必须已经创建制品库 REPO_NAME。网址格式为 LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • MAX-VALUE 替换为所需的容器实例数上限。

YAML

您可以使用 gcloud run services describe --format export 命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace 命令上传修改后的 YAML。请务必严格按照说明修改字段。

  1. 要查看和下载配置,请运行以下命令:

    gcloud run services describe SERVICE --format export > service.yaml
  2. 更新 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

    替换

    • SERVICE 替换为您的 Cloud Run 服务的名称
    • MAX-INSTANCE 替换为所需的数量上限。
    • REVISION 替换为新的修订版本名称或者将其删除(如果存在)。如果您提供新的修订版本名称,则该名称必须满足以下条件:
      • 开头为 SERVICE-
      • 仅包含小写字母、数字和 -
      • 不以 - 结尾
      • 不超过 63 个字符
  3. 使用以下命令将服务替换为其新配置:

    gcloud run services replace service.yaml

Terraform

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

以下 google_cloud_run_v2_service 资源在 template.scaling 下指定了 10 的实例数上限。将 10 替换为所需的实例数上限。

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-max-instances"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    scaling {
      # Max instances
      max_instance_count = 10
    }
  }
}

实例数上限

默认情况下,Cloud Run 服务最多可以配置给 100 个实例

最大限制取决于 Cloud Run 服务的区域及其 CPU 和内存配置。

配额页面显示每个区域的基准配额。

实例数上限取决于以下数量的最小值:

  • 区域配额基准/请求的 1 个 CPU 的倍数
  • 区域配额基准/请求的 2GB 内存的倍数

例如,如果基准配额为 1000 个实例,内存为 4GB 或 CPU 有 2 个,则有效上限为 500 个。

如果您要指定的实例数上限大于 Cloud Run 服务区域所允许的上限,则必须申请增加配额

查看实例数上限设置

如需查看 Cloud Run 服务的当前实例数上限设置,请按照以下所述操作:

控制台

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

    转到 Cloud Run

  2. 点击您感兴趣的服务以打开“服务详细信息”页面。

  3. 点击修订版本标签页。

  4. 在右侧的详细信息面板中,“容器”标签页下列出了实例数上限设置。

命令行

  1. 使用以下命令:

    gcloud run services describe SERVICE
  2. 在返回的配置中找到实例数上限设置。