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 Deploy 用来存储渲染清单的 Cloud Storage 存储桶。默认情况下,Cloud Deploy 会在 Cloud Deploy 资源所在的区域中创建 Cloud Storage 存储桶,并采用以下形式:
<location>.deploy-artifacts.<project ID>.appspot.com
默认 Cloud Build 超时
默认情况下,Cloud Build 针对 Cloud Deploy 执行的操作设有 1 小时的超时时间。您可以在目标配置的执行环境规范中更改该超时设置。
以下各部分介绍在哪些情况下更改这些值,还提供了相关操作说明链接。
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
workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
- usages:
- RENDER
- PREDEPLOY
- VERIFY
- POSTDEPLOY
如需详细了解如何为目标配置专用池,请参阅交付流水线配置文档。
从默认执行服务账号更改为自定义执行服务账号
与工作器池一样,可为每个目标指定用于渲染和/或部署的备用服务账号。为此,需要将以下行添加到目标配置中 workerPool
元素后面:
serviceAccount: "[name]@[project_name].iam.gserviceaccount.com"
指定的服务帐号必须包含 clouddeploy.jobRunner
角色,如 Cloud Deploy 服务帐号文档中所述。
如需详细了解此配置,请参阅目标定义。
更改存储位置
如需将存储桶从 Cloud Deploy 的默认存储桶更改为其他存储桶,请将以下代码行添加到 workerPool
节的目标定义中:
artifactStorage: "gs://[bucket_name]/[dir]"
此配置会更改已渲染清单的存储位置,但不会影响渲染来源的存储位置。
在 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 如何使用服务账号。