Cloud Deploy 執行環境是指 Cloud Deploy 執行轉譯、前置部署、部署、驗證和後置部署作業的環境。執行環境包含下列元件:
Cloud Deploy 執行算繪、前置部署、部署、驗證和後續部署作業的 Cloud Build 工作站集區 (預設或私人)
呼叫 Cloud Deploy 執行這些動作的服務帳戶 (預設或替代)
Cloud Storage 中已算繪資訊清單的儲存位置 (預設或替代)
作業的 Cloud Build 超時 (預設或自訂)
本文說明 Cloud Deploy 的預設執行環境、服務帳戶和儲存空間,以及變更這些預設值的理由和方式。
預設值
Cloud Deploy 執行、算繪及部署,以及儲存算繪資訊清單等資產時,會使用下列預設值:
預設工作站集區
根據預設,Cloud Deploy 會在預設的 Cloud Build 工作站集區中執行。不過,您可以設定 Cloud Deploy 使用 Cloud Build 私人工作站集區。
如要進一步瞭解工作站集區,請參閱 Cloud Build 的「預設集區和私人集區總覽」。
預設執行作業服務帳戶
根據預設,Cloud Deploy 會使用預設的 Compute Engine 服務帳戶。
Cloud Deploy 預設儲存位置
這個值是 Cloud Storage 值區,Cloud Deploy 會在其中儲存算繪的資訊清單。根據預設,Cloud Deploy 會在與 Cloud Deploy 資源相同的區域中建立 Cloud Storage bucket,格式如下:
<location>.deploy-artifacts.<project ID>.appspot.com預設 Cloud Build 超時
根據預設,Cloud Build 為 Cloud Deploy 執行的作業設定 1 小時的逾時時間。您可以在目標設定的執行環境規格中變更逾時時間。
Skaffold、gcloud CLI 和 kubectl 的預設詳細程度
根據預設,這些工具的記錄層級會設為各自的預設值,通常是
warn或同等值。你可以變更這項設定,改為debug或同等設定。
以下各節將說明在哪些情況下需要變更這些值,並提供相關操作說明的連結。
關於 Cloud Build 工作站集區
Cloud Deploy 執行環境可使用下列其中一項:
-
預設工作站集區是安全的代管環境,可存取公開網際網路。算繪、部署、預先部署、後期部署和驗證作業都會在這個集區中執行,與其他工作負載隔離。
私人集區
私有工作站集區是專屬的私有集區,可自訂的程度比預設工作站集區更高。自訂項目包括私人網路中資源的存取權。與預設工作站集區一樣,私人工作站集區由 Cloud Build 託管及全面管理。這些集區可擴充或縮減至零,完全不需設定、升級或擴充基礎架構。
Cloud Build 私人集區總覽更詳盡地說明瞭預設工作站集區和私人工作站集區,包括比較兩者功能的表格。
變更 Cloud Deploy 執行環境
您可能會在下列情況下變更 Cloud Deploy 執行環境:
您希望在與其他機構隔離的環境中,執行算繪、部署、預先部署、部署後或驗證作業,或這五項作業的組合。
您希望在未連上公開網際網路的環境中執行這些作業。
您希望使用不同的環境進行轉譯和部署。
您想使用專屬服務帳戶,該帳戶的權限比預設服務帳戶更符合您的用途。
您想將算繪資訊清單儲存在預設 Cloud Storage 值區以外的位置。
執行環境的三個部分 (工作站集區、服務帳戶和儲存空間) 都是依據目標設定,每個目標的 YAML 設定都不同。
從預設集區變更為私人集區
您為每個目標設定工作站集區,因此集區只會用於該目標的 RENDER、DEPLOY、PREDEPLOY、POSTDEPLOY 或 VERIFY (或這五個的組合) 。
如要使用預設工作站集區進行轉譯和部署作業,則不必執行任何操作。
以下是範例目標設定,指定 DEPLOY 的私有工作站集區,以及 RENDER、PREDEPLOY、POSTDEPLOY 和 VERIFY 的預設工作站集區:
executionConfigs:
- usages:
- DEPLOY
privatePool:
workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
- usages:
- RENDER
- PREDEPLOY
- VERIFY
- POSTDEPLOY
如要進一步瞭解如何為目標設定私人集區,請參閱交付管道設定說明文件。
從預設執行服務帳戶變更為自訂執行服務帳戶
與工作站集區相同,您可以為每個目標指定用於算繪或部署 (或兩者) 的替代服務帳戶。如要這麼做,請在目標設定的 workerPool 元素後方加入下列程式碼:
serviceAccount: "[name]@[project_name].iam.gserviceaccount.com"
如 Cloud Deploy 服務帳戶文件所述,指定的服務帳戶必須包含 clouddeploy.jobRunner 角色。
如要進一步瞭解這項設定,請參閱目標定義。
變更儲存位置
如要變更 Cloud Deploy 預設的儲存空間值區,請在 workerPool 節的目標定義中加入下列程式碼:
artifactStorage: "gs://[bucket_name]/[dir]"
這項設定會變更算繪資訊清單的儲存位置,但不會影響算繪來源的儲存位置。
變更 Skaffold、gcloud CLI 和 kubectl 的記錄層級
如要將 Skaffold、gcloud CLI 和 kubectl 的記錄層級從各自的預設值變更為 debug (或同等層級),請在執行設定中將 verbose 設為 true。範例如下:
executionConfigs:
- usages:
- [RENDER | PREDEPLOY| DEPLOY | VERIFY | POSTDEPLOY]
workerPool:
serviceAccount:
artifactStorage:
executionTimeout:
verbose: true
在 VPC Service Controls 服務範圍內使用 Cloud Deploy
Cloud Deploy 支援 VPC Service Controls。
您可以按照 VPC Service Controls 快速入門導覽課程設定服務範圍。
限制
您必須使用目標執行環境的 Cloud Build 私人工作站集區,而非預設工作站集區。
包含工作站集區的專案,以及包含 Cloud Deploy 資源的專案,必須位於同一個 VPC Service Controls 安全性範圍內。
部署到 VPC Service Controls 範圍的任何 GKE 叢集都必須是私人叢集。
如要為私人叢集設定私人集區,請參閱本教學課程。
後續步驟
進一步瞭解 Cloud Deploy 目標設定。
瞭解 Cloud Build 私人集區。
瞭解 Cloud Deploy 如何使用服務帳戶。