本页介绍了如何创建用于描述 Cloud Deploy 将应用部署到何处以及如何部署的部署流水线和目标。如需了解交付流水线和目标的 YAML 文件结构,请参阅配置文件架构。
交付流水线和目标简介
您的交付流水线描述了部署目标的进展。您可以在交付流水线所在的同一个文件或一个或多个单独的文件中定义这些目标。
创建交付流水线和目标定义文件后,对每个文件运行 gcloud deploy apply
,以将其注册为 Cloud Deploy 资源。
定义交付流水线和目标
此处介绍了交付流水线和目标配置文件的结构。
您可以随时调用此文件。按照惯例,包含目标定义的交付流水线配置命名为 clouddeploy.yaml
,引用在一个或多个单独的文件中定义的目标的付流水线配置命名为 delivery-pipeline.yaml
。
目标可以指向 GKE、GKE Enterprise 或 Cloud Run。在交付流水线中,所有目标都必须引用相同的运行时类型(例如,所有 GKE 或所有 GKE Enterprise)。
使用 Google Cloud 控制台创建交付流水线和目标
您可以使用 Google Cloud 控制台创建新的交付流水线和目标。这对于试用 Cloud Deploy 很有用,但不适用于生产工作负载。(您还可以使用 Google Cloud 控制台创建版本。)
如需创建交付流水线,请执行以下操作:
在交付流水线页面中,点击创建。
提供名称(或保留默认名称),还可以选择提供说明。
选择您所在的区域。
选择您的运行时环境。
对于 GKE,请选择 Google Kubernetes Engine;如果您要部署到 Cloud Run,请选择 Cloud Run。
在新建目标下,提供名称(或保留默认名称)。
如果您想要求对此目标进行审批,请选中发布作业需要批准复选框。
如果您要在此目标上使用Canary 部署策略,请选中 Enable canary(启用 Canary)复选框。
点击完成。
点击添加目标,然后针对您要创建的每个其他目标,按照这些步骤操作。
添加完所有目标后,点击创建以创建交付流水线和目标资源。
注册交付流水线和目标
如果您使用 Google Cloud 控制台创建了流水线和目标,则无需执行此操作。
如需向 Cloud Deploy 注册交付流水线,请为每个单独的定义文件运行 gcloud deploy apply
一次。也就是说,如果您在三个文件中定义了三个目标,则需要运行该命令四次:一次用于交付流水线,一次用于每个目标。
以下命令将注册交付流水线及其在同一文件中定义的目标。
gcloud deploy apply --file=PIPELINE_CONFIG \
--region=LOCATION \
--project=PROJECT
您现在有了一个交付流水线,可用于管理版本部署以及在同一项目和区域中的任何交付流水线可以使用的目标资源。
单文件示例
此示例中的命令将注册一个交付流水线和一些目标,它们在同一文件中定义:
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1
使用单独文件的示例
对于此示例,在三个单独的文件中定义了三个目标,因此运行四个命令:
gcloud deploy apply --file=delivery-pipeline.yaml --region=us-central1 && \
gcloud deploy apply --file=target_dev.yaml --region=us-central1 && \
gcloud deploy apply --file=target_staging.yaml --region=us-central1 && \
gcloud deploy apply --file=target_prod.yaml --region=us-central1
除非您设置了默认值(使用 gcloud
config set deploy/region [REGION]
),否则必须使用 --region
标志。交付流水线和该流水线引用的所有目标的区域必须相同。
使用 Terraform 创建交付流水线和目标
您还可以使用 Google Cloud Terraform 提供程序创建传送流水线和目标资源。
Google Cloud Beta 版 Terraform 提供程序可能支持预览版中的 Cloud Deploy 功能。
修改现有流水线和目标
您可以稍后修改任何交付流水线或目标配置,并运行 gcloud
deploy apply
以更新流水线或目标资源。但是,这些更改不会影响任何现有版本,因为它们由原始交付流水线管理。
需要手动批准部署
如需要求手动批准给定目标,请在目标定义中添加以下属性:
requireApproval: true
默认值为 false
。如果您在交付流水线配置中省略此属性,或者没有为它提供值,则部署到此目标不需要批准。(但是,尝试提升到目标的调用方仍然需要 clouddeploy.rollouts.create
IAM 权限。)
您甚至可以要求手动批准第一个目标。使用 CLI 创建版本时,对于第一个目标,系统会自动创建 rollout
。如果需要批准,Cloud Deploy 会创建 rollout
,但处于待处理发布状态,直到获得批准为止。
后续步骤
请参阅部署应用,了解如何调用交付流水线并创建版本。