您可以透過 Cloud Run worker 集區,使用執行個體分割功能,將非要求工作負載分配到多個修訂版本。您可以為每個修訂版本指派特定執行個體百分比、復原至先前的修訂版本,或在部署更新時將所有執行個體轉移至最新修訂版本。
執行個體分割的生命週期
如果您將執行個體分配給多個修訂版本,或將執行個體指派給先前的修訂版本,則後續所有部署作業都會使用該執行個體分配模式。如要返回僅使用最新修訂版本,而不分割執行個體,請將所有執行個體傳送至最新修訂版本。
執行個體分配調整不會立即生效。變更修訂版本的執行個體分配時,處理中的工作會繼續完成,Cloud Run 則會根據更新後的分配比例,在舊版和新版之間轉換工作負載。
必要的角色
如要取得管理 Cloud Run worker 集區和 worker 集區修訂版本所需的權限,請要求管理員授予您 Cloud Run worker 集區的 Cloud Run 開發人員 (roles/run.developer) IAM 角色。
如要查看與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 工作站集區與Cloud de Confiance API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。
復原至先前的修訂版本
如要復原至先前的修訂版本,請使用 Cloud de Confiance 控制台或 Google Cloud CLI:
控制台
前往 Cloud de Confiance by S3NS 控制台的 Cloud Run worker 集區:
在清單中找出並點選工作站集區。
按一下「修訂版本」分頁標籤,即可顯示該 worker 集區的目前修訂版本清單。
按一下「管理執行個體分割」,顯示管理執行個體表單。 Cloud Run 會列出最新的服務修訂版本。在表單中,設定下列詳細資料:
- 新增修訂版本,然後使用下拉式清單選取先前的修訂版本。
- 將先前修訂版本的執行個體百分比設為 100。
- 將最新提供服務的修訂版本百分比設為 0。
- 按一下 [儲存]。
gcloud
執行下列指令,指定要回溯的版本。
gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=REVISION=100
更改下列內容:
- WORKER_POOL:worker 集區的名稱。
- REVISION:要還原的修訂版本名稱。
YAML
如要建立新的 worker 集區,請略過這個步驟。如要更新現有 worker 集區,請下載其 YAML 設定:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
以下範例包含 YAML 設定:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL labels: cloud.googleapis.com/location: REGION spec: template: spec: containers: - image: IMAGE_URL instanceSplits: - revisionName: REVISION percent: 100更改下列內容:
- WORKER_POOL:worker 集區的名稱。
- REGION: Cloud de Confiance 區域,例如
us-central1。 IMAGE_URL:參照包含 worker 集區的容器映像檔,例如us-docker.pkg.dev/cloudrun/container/worker-pool:latest- REVISION:要復原至哪個修訂版本。
使用下列指令建立或更新 worker 集區:
gcloud run worker-pools replace worker-pool.yaml
gcloud run worker-pools replace指令預設會使用worker-pool.yaml檔案 (如有)。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
import {
id = "projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL"
to = google_cloud_run_v2_worker_pool.default
}
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
revision = "REVISION"
percent = 100
}
}
更改下列內容:
- PROJECT_ID:專案的 ID。 Cloud de Confiance
- REGION: Cloud de Confiance 區域,例如
us-central1。 - WORKER_POOL:worker 集區的名稱。
IMAGE_URL:參照包含 worker 集區的容器映像檔,例如us-docker.pkg.dev/cloudrun/container/worker-pool:latest- REVISION:要復原至哪個修訂版本。
將執行個體拆分給多個修訂版本
如要在兩個或多個修訂版本之間分割執行個體,請使用 Cloud de Confiance 控制台或 Google Cloud CLI:
在多個修訂版本之間分割執行個體時,請確保所有修訂版本的總百分比等於 100%,且手動執行個體數量必須大於處理工作負載的執行個體分割數量。
控制台
前往 Cloud de Confiance by S3NS 控制台的 Cloud Run worker 集區:
在清單中找出並點選工作站集區。
按一下「修訂版本」分頁標籤,即可顯示該工作站集區的目前修訂版本清單。
按一下「管理執行個體分割」,顯示管理執行個體表單。 Cloud Run 會列出最新的服務修訂版本。在表單中設定下列詳細資料:
將最新服務修訂版本的百分比設為所需比例,例如從 100% 降低。
按一下「Add revision」(新增修訂版本),然後使用下拉式清單選取先前的修訂版本,並設定對應的百分比分配。
如要使用其他修訂版本分割執行個體,請按一下「新增修訂版本」,然後選取其他修訂版本並設定百分比。
按一下 [儲存]。
gcloud
執行下列指令,指定修訂版本和執行個體百分比。在以半形逗號分隔的清單中,為每個修訂版本分配執行個體:
gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LIST
更改下列內容:
WORKER_POOL:工作站集區的名稱。
LIST:以半形逗號分隔的修訂版本和百分比清單:
REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEx.
例如
my-worker-pool-s5sxn=10,my-worker-pool-cp9kw=90。
YAML
如要建立新的 worker 集區,請略過這個步驟。如要更新現有 worker 集區,請下載其 YAML 設定:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
以下範例包含 YAML 設定:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/scalingMode: manual spec: template: spec: containers: - image: IMAGE_URL instanceSplits: - revisionName: REVISION1 percent: PERCENTAGE1 - revisionName: REVISION2 percent: PERCENTAGE2更改下列內容:
- WORKER_POOL:worker 集區的名稱。
- REGION: Cloud de Confiance 區域,例如
us-central1。 - INSTANCE_COUNT:執行個體數量。
IMAGE_URL:參照包含工作站集區的容器映像檔,例如us-docker.pkg.dev/cloudrun/container/worker-pool:latest- REVISION1 和 REVISION2:修訂版本的名稱。
- PERCENTAGE1 和 PERCENTAGE2:要分配給各修訂版本的執行個體百分比。總和必須為 100。
使用下列指令建立或更新 worker 集區:
gcloud run worker-pools replace worker-pool.yaml
gcloud run worker-pools replace指令預設會使用worker-pool.yaml檔案 (如有)。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
import {
id = "projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL"
to = google_cloud_run_v2_worker_pool.default
}
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
revision = "REVISION1"
percent = PERCENTAGE1
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
revision = "REVISION2"
percent = PERCENTAGE2
}
}
更改下列內容:
- PROJECT_ID:專案的 ID。 Cloud de Confiance
- REGION: Cloud de Confiance 區域,例如
us-central1。 - WORKER_POOL:工作站集區的名稱。
IMAGE_URL:參照包含 worker 集區的容器映像檔,例如us-docker.pkg.dev/cloudrun/container/worker-pool:latest- REVISION1 和 REVISION2:修訂版本的名稱。
- PERCENTAGE1 和 PERCENTAGE2:分配給各修訂版本的執行個體百分比。總和必須為 100。
將執行個體分配給最新修訂版本
部署新修訂版本時,您可以將 100% 的執行個體分配給這個修訂版本和所有後續版本,覆寫任何已建立的執行個體分割。
gcloud
如要將 100% 的執行個體分配給最新修訂版本,請執行下列指令:
使用
--to-latest旗標,將 100% 的執行個體導向最新修訂版本,並自動化分配所有執行個體給您部署的任何新修訂版本:gcloud run worker-pools update-instance-split WORKER_POOL --to-latest您也可以選擇搭配使用
--to-revisions旗標和LATEST關鍵字,這樣一來,每當您部署新修訂版本時,系統一律會將浮動百分比的執行個體分配給該版本。如要設定一律浮動至最新修訂版本的執行個體百分比,請執行下列指令:gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LATEST=PERCENTAGE更改下列內容:
- WORKER_POOL:worker 集區的名稱。
- PERCENTAGE:要為最新和未來最新修訂版本分配的執行個體百分比。
YAML
如要建立新的 worker 集區,請略過這個步驟。如要更新現有 worker 集區,請下載其 YAML 設定:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
以下範例包含 YAML 設定:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL labels: cloud.googleapis.com/location: REGION spec: template: spec: containers: - image: IMAGE_URL instanceSplits: - latestRevision: true percent: 100更改下列內容:
- WORKER_POOL:worker 集區的名稱。
- REGION: Cloud de Confiance 區域,例如
us-central1。 IMAGE_URL:參照包含 worker 集區的容器映像檔,例如us-docker.pkg.dev/cloudrun/container/worker-pool:latest
使用下列指令建立或更新 worker 集區:
gcloud run worker-pools replace worker-pool.yaml
gcloud run worker-pools replace指令預設會使用worker-pool.yaml檔案 (如有)。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_LATEST"
percent = 100
}
}
更改下列內容:
- WORKER_POOL:工作站集區的名稱。
- REGION: Cloud de Confiance 區域,例如
us-central1。 IMAGE_URL:參照包含工作站集區的容器映像檔,例如us-docker.pkg.dev/cloudrun/container/worker-pool:latest