1

我正在尝试在 GCP 上设置 CI/CD 管道。我想要以下:

  • Github中的新修改被用作触发器
  • 用于gcloud builds submit --config=cloud_build.yaml构建一个新的 docker 镜像,其中包含来自 git 的修改(主要是新的 python 包和 python 代码)并将镜像推送到 ContainerRegistry
  • 使用gcloud deployment-manager deploymentscreate xxx --template pipeline.jinja --properties xxx` 来部署和运行我的容器(它是一个 jupyter notebook)

我有最后两个步骤设置和工作(gcloudgcloud deployment-manager)。

我的问题是如何用一个脚本做到这一点?我会排队让管道完全自动化。我想实现的一些测试是测试是否正确安装了 python 包将在部署后在容器上完成。

GCP 的最佳实践是什么?我在想我可以gcloud deployment-manager在里面使用,gcloud builds但并没有真正找到文档来知道如何做到这一点。对于部署,我有很多变量要传递给设置网络、机器类型和其他参数,我只能使用 jinja 脚本来完成。

4

1 回答 1

3

GCP 的最佳实践是什么?我在想我可以在 gcloud 构建中使用 gcloud 部署管理器,但并没有真正找到文档来知道如何做到这一点

Cloud Build 提供并维护构建器的预构建映像,您可以在构建步骤中引用这些映像来执行任务。

gcr.io/cloud-builders/gcloud您可以使用( doc ) 构建器触发部署管理器:

# Build images
[...]

# Load/Generate your Jinja templates
[...]

# Deploy
- name: 'gcr.io/cloud-builders/gcloud'
  id: Deploy your application
  args: ['deployment-manager', 'deployments', 'create', 'your-template']

但是,在 GKE 集群中部署容器化应用程序还有更传统的方法:

  • viagcr.io/cloud-builders/kubectl通过定义明确的 Kubernetes 清单直接部署应用程序;
  • 通过Helm 工具构建器从自定义模板开始打包和部署 Kubernetes 应用程序。

免责声明:评论和意见是我自己的,而不是我雇主的意见。

于 2019-06-04T16:01:51.933 回答