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 Storage 存储桶 Cloud Deploy 资源,其格式如下:
<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 如何使用服务账号。