【问题标题】:Cloud build CI/CD & k8s files云构建 CI/CD 和 k8s 文件
【发布时间】:2019-05-21 04:50:49
【问题描述】:

我正在使用云构建和 GKE k8s 集群,并且我已经设置了从 github 到云构建的 CI/CD。

我想知道将CI构建文件和Dockerfile添加到存储库中还是在另一个存储库中单独管理配置文件好?

用业务逻辑库添加 Ci & k8s 配置文件好不好?

通过管理 CI/k8 yaml 文件将 CI/CD 云构建实施到 GKE 的最佳方法是什么

【问题讨论】:

  • 这篇关于 GitOps 风格 CI/CD 和 Cloud Build 的教程可能会有所帮助(声明性基础设施文件保存在单独的 repo 中,而 dockerfile 或 cloudbuild.yaml 在同一个 repo sas 项目中):cloud.google.com/kubernetes-engine/docs/tutorials/…
  • @chriscross 感谢您分享了一个我一直关注的链接,但我担心的是,我不能添加一个云构建文件和所有 k8s 部署 yaml 文件以及应用程序代码存储库,而不是为CI/CD
  • 我想这个想法是分开(一个 repo 中的 k8s yamls 与 dockerfile/cloudbuild 以及另一个中的应用程序代码),因为构建图像需要应用程序 repo 并且只有在它成功之后,yamls应该应用。此外,您可能不想仅通过对 yaml 所做的更改来触发新构建。
  • 您还可以在 k8s yaml 存储库中拥有多个分支,以匹配您的基础设施环境,例如 dev、qa、stage、production。
  • @chriscross 非常感谢你得到了我的答案。非常感谢您的帮助。

标签: docker kubernetes google-kubernetes-engine


【解决方案1】:

是的,您可以添加部署指令,通常在项目的专用文件夹中,该文件夹又可以使用 cicd 存储库

以“kelseyhightower/pipeline-application”为例,其中:

推送到除 master 之外的任何分支的更改应触发以下操作:

  • 构建带有适合部署到暂存集群的构建 ID 标记的容器映像
  • 克隆pipeline-infrastructure-staging repo
  • 使用 staging 容器映像修补管道部署配置文件并将更改提交到 pipeline-infrastructure-staging 存储库

pipeline-infrastructure-staging repo 将部署提交到主分支的所有更新。

【讨论】:

  • 感谢您分享答案。对 CI/CD 有了清晰的了解,可能我只需要创建两个 repo。
【解决方案2】:

请记住:

存储Dockerfile 或构建配置文件 的最佳解决方案应该是远程存储库。对于 dockerfile,这在 gcloud 中被支持为“Native Docker support”。

您可以使用不同的主机存储库,例如:

  • 云源存储库
  • 比特桶
  • GitHub

作为构建配置yaml文件的示例结构,您可以找到here,有关cloud build concepts and tutorials的信息。

【讨论】:

    猜你喜欢
    • 2020-04-04
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    相关资源
    最近更新 更多