使用 Cloud Deploy 执行环境

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 Build 专用池概览更全面地介绍了默认工作器池和专用工作器池,包括比较它们的功能的表。

更改 Cloud Deploy 执行环境

您可以在以下位置更改 Cloud Deploy 执行环境: 以下情况:

  • 您希望部署到专用 Google Kubernetes Engine 集群

  • 您需要渲染、部署、部署前、部署后或验证操作, 而且要在同一个完全隔离的环境 其他组织。

  • 您希望在非 已连接到公共互联网。

  • 您希望分离用于渲染和部署的环境。

  • 您希望使用专用服务账号;与默认服务账号相比,该服务账号拥有更针对您的使用的权限。

  • 您希望将已渲染清单存储在与默认 Cloud Storage 存储桶不同的位置。

执行环境所有三个部分的配置(工作器池、服务账号和存储)按目标在每个目标的 YAML 配置中完成。

从默认池更改为专用池

您可以按目标配置工作器池, 以便将该池用于 RENDERDEPLOYPREDEPLOYPOSTDEPLOYVERIFY(或五个的组合)。

如需在渲染和部署操作中使用默认工作器池,您无需执行任何操作。

以下是一个目标配置示例,该配置指定了专用工作器 用于 DEPLOY 的工作器池,以及用于 RENDERPREDEPLOY 的默认工作器池 POSTDEPLOYVERIFY

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 集群都必须是专用集群。

    如需为专用集群设置专用池,请参阅本教程

后续步骤