本指南說明 Cloud Run 如何處理部署作業,並分為三個部分:
- 部署類型:您提供給 Cloud Run 的內容,例如原始碼或容器映像檔。
- Cloud Run 資源:部署作業在 Cloud Run 中執行的內容 (服務、工作、工作站集區或執行個體)。
- 部署方法:如何執行部署作業,例如使用 Cloud de Confiance 控制台、gcloud CLI、YAML 或 Terraform。
部署類型
Cloud Run 提供多種部署選項。部署完成後,所有部署作業、執行作業或建立作業都會在 Cloud Run 全代管的高擴充性基礎架構上,以沙箱容器執行個體的形式執行。下表列出各資源類型支援的部署選項:
| 部署作業方式 | 服務 | 工作 |
|---|---|---|
| 可部署的容器映像檔。 | 支援 | 支援 |
| 從原始碼部署 | 支援 | 支援 |
| 部署函式1 | 支援 | — |
部署容器映像檔
您可以將符合 Cloud Run 容器執行階段合約的任何容器映像檔,部署至 Cloud Run服務或作業
Cloud Run 資源
以下各節將詳細說明 Cloud Run 資源。
比較 Cloud Run 資源
| 功能 | 服務 | 工作 |
|---|---|---|
| 主要應用實例 | 要求導向 (網站、API、微服務) | 以工作為導向 (指令碼、資料處理、遷移) |
| 觸發條件 | HTTP/gRPC 要求、Eventarc | 執行模式 - 標準 (立即)、延遲。 觸發條件 - 手動執行、使用排程器、使用工作流程 |
| 擴大運用 | 自動/手動:調度至零或根據要求調度 | 自動:調度至 N 個獨立工作,這些工作會依序或平行執行。 |
| 生命週期 | 暫時性,閒置時會縮減資源 | 放送最多 7 天 (短期) |
| 解決 | 穩定服務網址 (負載平衡) | 沒有公開端點。 觸發條件的內部網址 (例如排程器) |
| 傳入流量 | 公開/內部 HTTP/gRPC | 無 |
| 帳單 | 以要求為依據或以執行個體為依據 | 每次執行的時間長度 |
Cloud Run 服務
服務是 Cloud Run 的主要資源類型,代表由要求驅動的工作負載,會自動調度容器例項,以處理傳入的網路流量、HTTP 要求或事件。每個服務都位於特定Cloud de Confiance by S3NS 區域。為提供備援和容錯移轉功能,Cloud Run 會自動將服務複製到區域內的多個可用區。特定Cloud de Confiance 專案可在不同地區執行多項服務。
每項服務都會公開一個不重複的端點。根據預設,Cloud Run 會自動調整資源配置,以便處理傳入要求。如有需要,您可以將縮放行為變更為手動縮放。您可以從容器、存放區或原始碼部署服務。
下圖顯示服務的 Cloud Run 資源模型:
此圖顯示一個 Cloud de Confiance 專案,其中包含三項 Cloud Run 服務:Service A、Service B 和 Service C,都各有幾個修訂版本:
- Service A 收到多個要求,因此 Cloud Run 已啟動多個執行個體來處理負載。每個執行個體只會執行一個容器 (應用程式的容器)。
- 服務 B 沒有任何要求,因此處於閒置狀態,Cloud Run 也未執行任何執行個體。
- 服務 C 有要求,且已建立多個執行個體來處理負載,藉此調整規模。在本例中,每個執行個體都會執行一組多個容器。在每個集合中,只有 Ingress 容器會收到要求,但其他容器會協助完成要求。
Cloud Run 服務修訂版本
每次部署服務都會建立一個修訂版本。修訂版本由一或多個容器映像檔和設定組成,例如環境變數、記憶體上限或要求並行值。
修訂版本建立後就無法修改。舉例來說,當您將容器映像檔部署到新服務時,Cloud Run 會建立第一個修訂版本。如果您將不同的容器映像檔部署到同一個服務,Cloud Run 就會建立第二個修訂版本。如果您之後設定環境變數,Cloud Run 就會建立第三個修訂版本。一段時間後,Cloud Run 最終會移除未使用的修訂版本。
Cloud Run 會自動盡快將要求轉送到最新且健康狀態良好的服務修訂版本。
Cloud Run 服務執行個體
Cloud Run 會自動調整接收要求的每個服務修訂版本,以符合處理所有要求所需的執行個體數量。請注意,執行個體可同時接收多個要求。您可以使用要求並行設定,設定可同時傳送至修訂版本每個執行個體的要求數目上限。
Cloud Run 工作
每個工作都位於特定 Cloud de Confiance區域,且由一或多個工作任務組成,這些任務會執行一或多個容器,直到完成為止。工作工作是獨立的,可以在指定的工作執行中平行執行。
Cloud Run 工作執行作業
執行工作時,Cloud Run 會建立工作執行作業,並啟動所有工作任務。工作執行中的所有任務都必須順利完成,工作執行才會成功。您可以為工作設定 timeouts,並在工作失敗時指定 retries 次數。
如果任何工作超過重試次數上限,Cloud Run 會將該工作標示為失敗,並將工作標示為失敗。根據預設,工作會並行執行,最多可達 100 個,但如果任何支援資源 (例如資料庫) 有此需求,您可以指定較低的上限。
Cloud Run 工作任務
每次執行工作時,都會平行執行多項工作,每項工作都會執行一個例項。Cloud Run 會根據工作的 maxRetries 設定,自動嘗試再次執行任何失敗的工作。