使用 Cloud Deploy 執行環境

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 Build 私人集區總覽更詳盡地說明瞭預設工作站集區和私人工作站集區,包括比較兩者功能的表格。

變更 Cloud Deploy 執行環境

您可能會在下列情況下變更 Cloud Deploy 執行環境:

  • 您想部署至私人 Google Kubernetes Engine 叢集

  • 您希望在與其他機構隔離的環境中,執行算繪、部署、預先部署、部署後或驗證作業,或這五項作業的組合。

  • 您希望在未連上公開網際網路的環境中執行這些作業。

  • 您希望使用不同的環境進行轉譯和部署。

  • 您想使用專屬服務帳戶,該帳戶的權限比預設服務帳戶更符合您的用途。

  • 您想將算繪資訊清單儲存在預設 Cloud Storage 值區以外的位置。

執行環境的三個部分 (工作站集區、服務帳戶和儲存空間) 都是依據目標設定,每個目標的 YAML 設定都不同。

從預設集區變更為私人集區

為每個目標設定工作站集區,因此集區只會用於該目標的 RENDERDEPLOYPREDEPLOYPOSTDEPLOYVERIFY (或這五個的組合)

如要使用預設工作站集區進行轉譯和部署作業,則不必執行任何操作。

以下是範例目標設定,指定 DEPLOY 的私有工作站集區,以及 RENDERPREDEPLOYPOSTDEPLOYVERIFY 的預設工作站集區:

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 叢集都必須是私人叢集。

    如要為私人叢集設定私人集區,請參閱本教學課程

後續步驟