使用 Cloud Deploy,你可以部署到配置为 代表多个目标,并且您的应用会在 并行执行。您在销售漏斗中确定的阶段目标是 称为多目标,而这些目标 多定位条件包含的内容称为“子定位条件”。
您可以将并行部署与 Cloud Deploy 提供支持,包括 Google Kubernetes Engine Cloud Run 和 GKE Enterprise
为什么要并行部署
例如,您可以使用并行部署来将应用部署到 多个生产目标。在这种情况下,您不需要将应用部署到 目标,因为没有进展(例如,从 dev 到 dev), 从预演到生产)。
这种并行部署可以作为正常交付流水线的一部分
进度:
dev -> staging -> prod [prod1, prod2, prod3, prod4, ...]
.
用于并行部署的 Cloud Deploy 资源
并行部署使用以下 Cloud Deploy 专用 资源:
多目标
多目标是指使用属性
multiTarget
配置的目标。 在目标配置 YAML 的顶层添加以下代码,而不是引用 运行时集群或服务,它会引用一个或多个其他目标,使用multiTarget.targetIds
.子目标
子目标是指多目标引用的任何目标
multiTarget.targetIds
.子级还必须引用支持的目标类型 (Google Kubernetes Engine、GKE Enterprise 或 Cloud Run)。控制器发布
控制器发布是指与多目标对应的发布。
如需详细了解控制器发布可执行的操作,请参阅限制。
-
请参阅限制,详细了解关于子级发布哪些内容可以执行及无法执行的相关操作。
设置并行部署
设置并行部署包括定义一个多目标和 所需子目标的数量(不超过上限)。目标 除以下几点外,所有目标的定义都相同:
- 多目标包含
multiTarget
属性。 - 子目标不包含
multiTarget
属性,但会被引用 使用multiTarget.targetIds
属性从多目标中提取数据。 - 您可以将多目标配置为审批,但不能配置子目标。
该字段不能包含
requireApproval:true
。
多目标和子目标可以包含自定义 执行环境 配置。如果子目标未指定执行环境,它将继承 多目标定义中定义的那个路径或默认值。请参阅 执行环境和并行部署 了解详情。
配置多目标
多目标是指在投放过程中被视为一个阶段的单个目标 但指向一个或多个子目标。
多目标配置包含 multiTarget
属性。答
多目标不能具有 gke
、run
或 anthosCluster
属性。
无论您使用哪个运行时,多目标的配置都是相同的
部署到什么位置。
在交付流水线 YAML 或单独的 YAML 文件中,创建基本目标定义,包括 multiTarget
:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: TARGET_NAME
description: TARGET_DESCRIPTION
multiTarget:
targetIds: [ CHILD_TARGET1, CHILD_TARGET2, CHILD_TARGETn ]
在此 YAML 中...
TARGET_NAME 是此多目标的名称, 在交付流水线定义中使用,
stages.targetId
属性。CHILD_TARGET1, CHILD_TARGET2,...CHILD_TARGETn是 作为此多目标目标的部署目标的子级的名称。每个名称 添加到子目标定义中的
name
属性。
multiTarget.targetIds
属性的存在会使此目标
多目标。
配置子目标
对于在您的 Google Ads 账号中识别为儿童的每个目标 多目标配置,请将另一个目标配置为子目标:
在您的交付流水线 YAML 中或单独的 YAML 文件中,创建基本目标定义:
GKE
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: CHILD_TARGET1
description: TARGET_DESCRIPTION
gke:
cluster: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
在此 YAML 中...
CHILD_TARGET1 是此子目标的名称。通过 名称对应于
multiTarget.targetIds
属性(位于多目标定义中)。gke.cluster
属性的值是集群的资源名称 包括项目 ID、区域和集群 名称。
此目标的配置与标准 GKE 目标相同。
唯一能使该对象成为子目标的唯一因素是它被
multiTarget.targetIds
属性。
Cloud Run
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: CHILD_TARGET1
description: TARGET_DESCRIPTION
run:
location: projects/PROJECT_ID/locations/REGION
在此 YAML 中...
CHILD_TARGET1 是此子目标的名称。通过 名称对应于
multiTarget.targetIds
属性(位于多目标定义中)。run.location
属性的值就是 此目标所指的 Cloud Run 服务,包括 项目 ID 和区域
此目标的配置与标准 Cloud Run 相同
目标。唯一能够使其成为子目标的因素是它引用了
由多目标中的 multiTarget.targetIds
属性决定。
GKE Enterprise
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: CHILD_TARGET1
description: TARGET_DESCRIPTION
anthosCluster:
membership: projects/PROJECT_ID/locations/global/memberships/MEMBERSHIP_NAME
在此 YAML 中...
CHILD_TARGET1 是此子目标的名称。通过 名称对应于
multiTarget.targetIds
属性(位于多目标定义中)。MEMBERSHIP_NAME 是您选择 注册 GKE Enterprise 用户集群 一个舰队
此目标的配置与标准 GKE Enterprise 相同
目标。唯一能够使其成为子目标的因素是它引用了
由多目标中的 multiTarget.targetIds
属性决定。
将部署参数传递给目标
您可以通过在 清单和值。这些值可以是 单独应用于 单独的清单。
例如,您可能希望每个子级具有不同数量的副本 目标。为此,您需要在提交内容中添加相应参数和值 流水线的进度,以及 每个“参数-值”对都要匹配。
详细了解部署参数。
创建版本
在配置了多目标和子目标的情况下, 创建交付流水线和目标资源, 然后照常创建版本
交付流水线的生命周期与 Cloud Deploy 流水线和目标 Cloud Deploy 会创建一个控制器 多目标发布,以及用于部署应用的子发布 每个子定位条件。
响应 Cloud Deploy 操作的 Pub/Sub 消息 控制器发布和子发布之间的区别。
限制
一个多目标最多只能有 50 个子目标。
单个多目标的所有子目标必须具有相同的目标运行时 (例如,所有 GKE 或所有 GKE Enterprise)。
在交付流水线中,一个子目标只能有一个父目标 多目标。
多目标不能是无子项,也不能引用自身或其他目标 作为子目标。
您不能在一个交付流水线中多次使用一个子目标, 但您可以在其他流水线中重复使用它们
默认池具有 而专用池则没有并发限制
部署到多目标时,所有子发布会在同一处部署 最长不超过 Cloud Build 并发限制。如果您的子目标数量超过该限制, 一些目标的部署作业只有在其他目标完成后才能运行, 这表示 Cloud Deploy 不会部署到 在本示例中为同一时间
此外,如果目标包含验证作业, 在验证作业开始前, 应用已部署到所有子目标。
如果您需要能够同时部署到比限制更多的目标 Cloud Build 文档中指定的 API, 您有两个选择:
申请增加 您可以运行多个并发构建作业
执行环境和并行部署
每个目标都可以配置为使用非默认执行环境。
如果多目标采用非默认执行环境,则所有子目标 则从 多目标
如果多目标使用默认执行环境,则任何子目标 使用非默认执行环境的 非默认属性。
这些规则可让您更轻松地将执行环境传播到子目标 因此您不必定义或更改执行 同时仍允许您自定义 执行环境。
请参阅使用 Google Cloud Deploy 执行环境 详细了解 Cloud Deploy 中的执行环境。
回滚并行部署
如果您需要从多个并行目标回滚部署, 回滚多目标,如 回滚目标。
并行部署的审批
与任何目标一样,您可以将并行部署配置为 审批。 但是,使用并行部署时,您只能在 多目标。批准或拒绝会同时影响所有子目标。
在 Google Cloud 控制台中查看并行部署
您可以查看多目标、子目标、控制器的详细信息 Google Cloud 控制台中的子发布和子发布。
在查看给定交付流水线的目标列表时,在“交付”部分 “Pipeline Details”(流水线详细信息),系统会列出多目标,但不会列出子目标。 不过,在查看版本详情时,您可以看到控制器的发布和 子发布。您还可以在 “交付流水线”详情页面上的发布标签页。
在版本检查器中,您可以查看和比较 呈现清单。
将并行部署与部署策略搭配使用
使用 Google Cloud Armor Canary 部署策略。请参阅 将并行部署与 Canary 部署策略搭配使用 。
后续步骤
尝试查看快速入门:同时将应用部署到多个目标。
详细了解如何使用部署参数。
请参阅目标配置架构。
查看 Cloud Deploy 服务架构一文。