在 Google Cloud 控制台中创建流水线和发布
本页介绍了如何使用 Google Cloud 控制台创建 Cloud Deploy 部署流水线,然后为该流水线创建版本。
在本快速入门中,您将执行以下操作:
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Deploy, Cloud Build, GKE, Artifact Registry, Cloud Run, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Deploy, Cloud Build, GKE, Artifact Registry, Cloud Run, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
如果您已安装 CLI,请确保您运行的是最新版本:
gcloud components update
创建运行时环境
如果您要部署到 Cloud Run,则可以跳过此命令。
对于 GKE,使用默认设置创建两个集群 quickstart-cluster-for-console-staging
和 quickstart-cluster-for-console-prod
。集群的 Kubernetes API 端点必须可通过公共互联网访问。默认情况下,GKE 集群可从外部访问。
gcloud container clusters create-auto quickstart-cluster-for-console-staging \
--project=PROJECT_ID \
--region=us-central1 && \
gcloud container clusters create-auto quickstart-cluster-for-console-prod \
--project=PROJECT_ID \
--region=us-central1
创建一个交付流水线和两个目标
您可以使用 Cloud Deploy 根据一个或多个 YAML 文件中指定的配置创建交付流水线和目标。不过,您也可以使用 Google Cloud 控制台创建提交流水线。
在本部分中,您将使用 Google Cloud 控制台创建一个交付流水线和两个目标。使用 Google Cloud 控制台时,您无需创建任何 YAML 文件;Cloud Deploy 会为您创建 skaffold.yaml 和清单。
在 Google Cloud 控制台中,前往 Cloud Deploy 主页。
点击创建
系统随即会显示创建交付流水线表单。
在流水线名称字段中,将默认文本替换为
in-console-quickstart-pipeline
。(可选)输入此交付流水线的说明。
在区域下拉列表中,选择
us-central1
。选择运行时。
如果您要部署到 GKE,请选择 Google Kubernetes Engine。否则,请选择 Cloud Run。
创建目标:
GKE
在新目标下的目标名称字段中,将默认文本替换为
console-staging
。从 Kubernetes Engine 集群下拉菜单中,选择
quickstart-cluster-for-console-staging
。点击完成。
点击添加目标。
将目标名称的默认文本替换为
console-prod
。从 Kubernetes Engine 集群下拉菜单中,选择
quickstart-cluster-for-console-prod
。选择需要获得批准才能发布。
在本快速入门中,我们要求对第二个目标进行审批,但对第一个目标不进行审批。
点击创建以创建此提交流水线。
Cloud Run
在新目标下的目标名称字段中,将默认文本替换为
console-staging
。从区域下拉菜单中,选择
us-central1
。点击完成。
点击添加目标。
将目标名称的默认文本替换为
console-prod
。为此目标启用需要批准才能发布复选框。
在本快速入门中,我们要求对第二个目标进行审批,但对第一个目标不进行审批。
点击创建以创建此提交流水线。
现在,您已经有了包含两个目标的交付流水线,可以创建版本了。
系统会显示流水线的页面,其中显示这两个目标,但没有任何发布。
创建版本
现在,您已经有了包含两个目标的交付流水线,这两个目标指向两个 GKE 集群或两个 Cloud Run 服务,您可以创建一个版本,将应用部署到第一个目标。
如果您尚未前往显示新版交付流水线
in-console-quickstart-pipeline
的交付流水线页面,请立即前往该页面。系统会显示流水线直观显示效果,但没有发布作业。
点击创建版本按钮。
系统随即会显示创建版本对话框。大多数字段均已预先填充。保留这些默认值。
您可以点击查看清单按钮,查看为任一目标自动生成的清单,也可以点击查看 Skaffold 文件,查看生成的
skaffold.yaml
。您也可以对其进行修改,但在本快速入门中,请将其保持不变。(可选)在说明字段中为此版本添加说明。
点击创建以开始发布。
系统会显示发布到第一个目标的发布详情页面,您可以监控此发布的进度。这需要几分钟才能完成。发布可能需要几秒钟的时间才能开始。
首次发布完成后,点击相应交付流水线名称,前往交付流水线页面。
系统会显示流水线直观显示效果,其中第一个目标平台已完成发布。
点击提升,开始向下一个目标平台发布。
系统会显示提升对话框。
保留默认值,根据需要添加发布说明,然后点击提升。
由于我们在创建第二个目标时选择了发布时需要批准,因此此促销活动正在等待批准。
在交付流水线直观显示中,点击审核。
系统会显示批准页面。
再次点击查看,然后在批准对话框中点击批准。
系统开始向第二个目标平台发布。您可以再次点击交付流水线名称,在流水线可视化图表中查看进度。
第二次发布完成后,应用会部署在第二个目标平台,并且您的提交流水线也已完成。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
删除 GKE 集群或 Cloud Run 服务:
GKE
gcloud container clusters delete quickstart-cluster-for-console-staging --region=us-central1 --project=PROJECT_ID \ && gcloud container clusters delete quickstart-cluster-for-console-prod --region=us-central1 --project=PROJECT_ID
Cloud Run
gcloud run services delete in-console-quickstart-pipeline-target-1 --region=us-central1 --project=PROJECT_ID \ && gcloud run services delete in-console-quickstart-pipeline-target-2 --region=us-central1 --project=PROJECT_ID
在交付流水线页面中,点击删除以删除交付流水线、版本和发布。
在提供的字段中输入流水线名称,然后点击确认以完成资源删除。
删除这两个目标:
gcloud deploy targets delete console-staging --region=us-central1 && \ gcloud deploy targets delete console-prod --region=us-central1
删除 Cloud Deploy 创建的 Cloud Storage 存储分区。
一个以
_clouddeploy
结尾,另一个是[region].deploy-artifacts.[project].appspot.com
。
恭喜,您已经完成快速入门!