在正常的kubernetes CI/CD过程中,发生以下过程:
部署
根据gitops的定义
GitOps是一种新的持续部署方法,它利用Git作为声明性基础结构和应用程序的单一真理来源,同时提供修订和更改控制。使用GitOps,系统通过提交拉请求(以及随后的合并)来运行,以实现Git存储库中表示的系统的所需状态。
我对gitops的理解是,当您在git中更新任何内容(因为这是真相的来源),所需的kubernetes状态将更改为最新的状态,并部署最新的代码。
传统CI/CD没有gitops的最终结果:新代码被部署为kubernetes部署
的最终结果:新代码被部署为kubernetes部署
我想不出有什么区别。抱歉,如果你觉得怪怪的话。不过,我是个新手,还在探险。
谢谢你的答复
发布于 2020-08-11 17:30:02
CICD的重点是整个链:
您签入的代码tested
再加上中间的许多其他步骤。这就是为什么它是一个持续的集成和部署。你也可以说,一个端到端的过程。
GitOps不关心您的代码,坞构建之类的。它完全集中在保持您的应用程序更新(部署部分),在极端形式与进步交付完全自动化,交通转移和健康检查,汽车倒退等。
除此之外,您还有其他一些小细节,比如推拉、集群自治、关注点分离等。
发布于 2021-08-22 20:51:06
简短的回答- GitOps是一个框架,CI/CD是一个过程!
GitOps的目标是利用Git作为真理的来源,并赋予开发人员执行IT操作的能力。它通过持续集成和连续交付(CI/CD)实现Git工作流的自动化。让我举个例子-我有一个kubernetes集群,我为它设置了用于自动化的CI/CD管道,但是我们经常看到有人在集群上直接对应用程序版本进行手动更改(到处都是!)。我们利用GitOps对我的集群进行声明,这样每当有人进行手动更改时,它都会重写,并将其带回到Git中声明的原始声明(使用GitOps代理(如Flux) )。
https://stackoverflow.com/questions/63340183
复制相似问题