部署選項和資源模型

部署選項

Cloud Run 提供多種部署選項。所有部署選項都會產生容器映像檔,以 Cloud Run 的全代管且具備高擴充性的基礎架構,執行 Cloud Run 服務工作

容器映像檔

任何符合 Cloud Run 容器執行階段合約的容器映像檔,都可以部署至 Cloud Run 服務工作

來源

為方便���見,Cloud Run 可讓您透過單一指令建構及部署原始碼。部署來源時,Cloud Build 會將程式碼轉換為儲存在 Artifact Registry 中的容器映像檔。您可以部署包含 Dockerfile 的來源,或是以支援的語言執行階段撰寫的來源。

來源可以部署至 Cloud Run 服務工作

函式

您可以部署單一用途函式,回應雲端基礎架構和服務產生的事件。一旦監控的事件發生,就會觸發您的函式。

函式部署作業是一種特殊類型的來源部署作業,您只需提供函式程式碼即可。您可以使用多種支援的程式設計語言編寫 Cloud Run 函式。

函式會以 Cloud Run 服務的形式部署。

從 Git 持續部署原始碼

Cloud Run 可協助您設定從 Git 持續部署。與來源部署作業一樣,您可以部署包含 Dockerfile 或以支援的語言執行階段之一編寫的原始碼。

您可以為 Cloud Run 服務使用從 Git 持續部署功能,也可以在 Cloud Build 中手動設定 Cloud Run 工作

Cloud Run 服務

服務是 Cloud Run 的主要資源之一。每項服務都位於特定的 Google Cloud 地區。為獲得備援和容錯移轉,系統會自動將服務複製到所在地區的多個區域。特定 Google Cloud 專案可在不同地區執行多項服務。

每個服務都會公開一個不重複的端點,並預設會自動調度基礎架構資源來處理傳入的要求,但您可以視需要將調度行為變更為手動調度。您可以從容器、存放區或原始碼部署服務。

下圖顯示服務的 Cloud Run 資源模型:

Cloud Run 服務與修訂版本

此圖顯示一個 Google Cloud 專案,其含有三項 Cloud Run 服務:Service AService BService C,每項服務都有幾個修訂版本。

圖中的 Service A 接收許多要求,因此會啟動並執行數個執行個體,每個執行個體都會執行單一容器。請注意,Service B 沒有接收要求,因此尚未啟動任何執行個體。Service C 會在每個修訂版本中為每個執行個體執行多個容器:請注意,只有入口容器會接收要求。每個含有多個容器的例項都會以獨立的單位進行調整。

Cloud Run 服務修訂版本

每次部署服務都會建立一個修訂版本。修訂版本由一或多個容器映像檔組成,並包含環境變數、記憶體上限或要求並行值等設定。

修訂版本不可變更,且一旦建立就無法修改。例如,當您將容器映像檔部署到新的 Cloud Run 服務時,系統就會建立第一個修訂版本。如果您將不同的容器映像檔部署到同一個服務,系統便會建立第二個修訂版本。如果您之後設定環境變數,那系統就會建立第三個修訂版本,以此類推。

系統會自動儘快將要求轉送到最新且健康狀態良好的服務修訂版本。

Cloud Run 服務執行個體

接收要求的每個服務修訂版本都會根據處理這些要求所需的執行個體數目,自動調度資源。請注意,執行個體可同時接收多個要求。您可以使用要求並行設定,設定可同時傳送至修訂版本各個例項的要求數量上限。

Cloud Run 工作

每個工作都位於特定 Google Cloud 區域,並執行一或多個容器,直到完成為止。工作由一或多個獨立的工作組成,這些工作會在特定工作執行中並行執行。

Cloud Run 工作執行作業

當工作執行時,系統會建立工作執行作業,並在其中啟動所有工作任務。工作執行作業中的所有工作都必須順利完成,工作執行作業才算成功。您可以為工作設定逾時,並在工作失敗時指定重試次數。如果任何工作超過重試次數上限,該工作就會標示為失敗,且工作會標示為失敗。根據預設,工作會以平行方式執行,最多可達 100 個,但如果任何基礎資源需要,您可以指定較低的上限。

Cloud Run 工作任務

每項工作執行作業都會同時執行多項工作。每個工作都會執行一個例項,並可能重試。