Cloud Deploy 执行环境 Cloud Deploy 执行其渲染、预部署、部署、验证和 部署后操作执行环境包括 组件:
Cloud Build 工作器池 (默认或专用),Cloud Deploy 在其中执行渲染, 部署前、部署、验证和部署后操作
调用 Cloud Deploy 的服务账号(默认或备用) 执行这些操作
中呈现的清单的存储位置(默认或备用) Cloud Storage
操作(默认或自定义)的 Cloud Build 超时
本文介绍了默认执行环境、服务账号和 以及如何更改这些配置的原因和方式 默认值。
默认值
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 Storage 存储桶 Cloud Deploy 资源,其格式如下:
<location>.deploy-artifacts.<project ID>.appspot.com
默认 Cloud Build 超时
默认情况下,Cloud Build 的操作超时时间为 1 小时 Cloud Deploy 的性能。您可以在 执行环境规范 目标配置。
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 如何使用服务账号。