【问题标题】:How to use 'gcloud deployment-manager deployments' within 'gcloud builds' do have a full CI/CD pipeline on GCP?如何在“gcloud builds”中使用“gcloud deployment-manager deployments”在 GCP 上有完整的 CI/CD 管道?
【发布时间】:2019-06-04 07:55:33
【问题描述】:

我正在尝试在 GCP 上设置 CI/CD 管道。我想关注:

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

我已经完成了最后两个步骤的设置和工作(gcloudgcloud deployment-manager)。

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

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

【问题讨论】:

    标签: google-cloud-platform continuous-integration continuous-deployment google-cloud-build google-deployment-manager


    【解决方案1】:

    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 集群中部署容器化应用程序:

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

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

    【讨论】:

      猜你喜欢
      • 2020-10-04
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 2015-09-10
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多