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 小时。您可以在目标配置中的执行环境规范中更改此超时设置。
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"
指定的服务账号必须包含 clouddeploy.jobRunner
角色,如 Cloud Deploy 服务账号文档中所述。
如需详细了解此配置,请参阅目标定义。
更改存储位置
如需从 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 如何使用服务账号。