【发布时间】:2020-11-30 01:22:21
【问题描述】:
在正常的kubernetes CI/CD过程中,会发生以下过程:
- 从 git 克隆代码
- 构建并推送 docker 镜像
- 使用更新的代码更新 Kubernetes 部署
根据 gitops 定义
GitOps 是一种新的持续部署方法,它利用 Git 作为声明性基础设施和应用程序的单一事实来源,提供修订和变更控制。使用 GitOps,系统通过提交拉取请求(和后续合并)来运行,以实现 Git 存储库中表示的系统的所需状态
我对 gitops 的理解是,当您在 git 中更新任何内容时(因为这是事实的来源),所需的 kubernetes 状态将更改为最新状态并部署最新代码。
没有 gitops 的传统 CI/CD 的结束结果:新代码部署为 kubernetes 部署
gitops的结束结果:新代码部署为kubernetes部署
我无法弄清楚其中的区别。抱歉,如果您觉得这听起来很奇怪。但我有点新,正在探索 gitops 。
提前感谢您的回复
【问题讨论】:
-
k8s 上下文中的 GitOps 通常假定您使用专门的 GitOps 工具,例如 ArgoCD 或 Flux,请参阅我关于玩具项目的工作实施的文章:itnext.io/…
-
@taleodor 所以你是说仅仅使用 gitops 工具就可以使 CI CD 成为 gitops?
-
接近那个。更具体地说,GitOps 假设对存储库中的更改具有近乎实时的反应性。这样您就可以消除存储库状态与环境状态之间的差距。如果没有专门的工具,这很难实现。
标签: git kubernetes continuous-integration continuous-deployment