設定服務的執行個體數量上限

本頁說明如何使用預設的 Cloud Run 自動調度資源行為,設定可用於 Cloud Run 服務的最大執行個體數。如果您使用手動資源調度,也請參閱手動資源調度說明文件,瞭解這些帳單設定如何與手動資源調度服務搭配運作。

在 Cloud Run 中指定執行個體數量上限,可限制服務在回應傳入要求時的資源配置,但由於流量激增等情況,這項上限設定可能會在短時間內超出。

您可以使用這項設定來控管費用,或限制與後端服務 (例如資料庫) 的連線數量。

如要進一步瞭解可能適用於服務的執行個體上限,請參閱「執行個體上限」。

如要進一步瞭解 Cloud Run 自動調度容器執行個體的方式,請參閱「執行個體自動調度」。

必要的角色

如要取得設定及部署 Cloud Run 服務所需的權限,請要求管理員授予您下列 IAM 角色:

  • Cloud Run 服務中的 Cloud Run 開發人員 (roles/run.developer)
  • 服務身分中的「服務帳戶使用者」 (roles/iam.serviceAccountUser)

如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果您的 Cloud Run 服務會與Google Cloud API 互動 (例如 Cloud 用戶端程式庫),請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱部署權限管理存取權

設定及更新執行個體數量上限

任何設定變更都會建立新的修訂版本。除非您明確做出更新,否則後續的修訂版本也會自動取得這個設定。

根據預設,Cloud Run 服務會設定為最多擴充至 100 個執行個體。

您可以使用 Google Cloud 主控台、Google Cloud CLI 或 YAML 檔案,在建立新服務部署新版本時變更最大執行個體設定。

控制台

  1. 前往 Google Cloud 控制台的 Cloud Run:

    前往 Cloud Run

  2. 從選單中選取「Services」(服務),然後按一下「Deploy container」(部署容器),即可設定新的服務。如果您要設定現有服務,請按一下該服務,然後點選「編輯並部署新修訂版本」

  3. 如果您要設定新服務,請填寫初始服務設定頁面,然後按一下「容器、磁碟區、網路與安全性」展開服務設定頁面。

  4. 按一下「Container」分頁標籤。

    圖片

    • 在標示為「Maximum number of instances」的欄位中,指定所需的執行個體數量上限,使用從 1上限的任何整數值。
  5. 按一下 [Create] (建立) 或 [Deploy] (部署)

gcloud

您可以使用下列指令更新特定服務的執行個體上限數量

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

  1. 如果您要建立新服務,請略過這個步驟。如果您要更新現有服務,請下載其 YAML 設定

    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 指令」。

將下列內容新增至 Terraform 設定中的 google_cloud_run_v2_service 資源:

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

  deletion_protection = false # set to "true" in production

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

上述 google_cloud_run_v2_service 資源會在 template.scaling 下指定 10 的最大例項數量。

10 改成所需的執行個體數量上限。

查看最大執行個體設定

如要查看 Cloud Run 服務目前的最大執行個體設定,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的 Cloud Run:

    前往 Cloud Run

  2. 按一下您感興趣的服務,開啟「服務詳細資料」頁面。

  3. 按一下「Revisions」(修訂版本) 分頁標籤。

  4. 在右側的詳細資料面板中,「容器」分頁下方會列出「最大執行個體」設定。

gcloud

  1. 使用下列指令:

    gcloud run services describe SERVICE
  2. 在傳回的設定中找出執行個體數量上限設定。