ArgoCD是什么


Argo CD 是 Kubernetes 的声明式 GitOps 持续交付工具。应用程序定义、配置和环境应该是声明性的和版本控制的。应用程序部署和生命周期管理应该是自动化的、可审计的且易于理解。
官方文档

CD工作流(无ArgoCD)

假设有一个微服务应用程序在Kubernetes集群里运行,当应用程序代码发生变化时,比如添加新功能或错误修复。

Jenkins上的Pipeline将会自动触发,并测试更改,构建新的镜像,并将其推送到镜像存储库。



那么新镜像如何部署呢?一般做法:

  1. 更新k8s部署的yaml文件里的镜像tag为新镜像tag
  2. 应用此yaml文件在k8s集群里


但是在CD这个过程也可能会遇到一些问题:

  • 安装和设置一些工具,如kubectl,helm,还可能需要在Jenkins上安装一些插件
  • 配置这些工具对k8s集群的访问
  • 不同平台之间的配置,例如AWS的EKS
  • 集群安全性
  • 无法对部署状态进行观察

CD工作流(使用ArgoCD)

工作原理是反转工作流

  • ArgoCD 就是k8s集群的一部分,我们没有将更改推送到集群里
  • ArgoCD agent拉取k8s manifest的改变并将其应用到集群里

  1. 在k8s集群里部署ArgoCD
  2. 配置ArgoCD连接对应的Git仓库
  3. 监视任何更改,如有任何更改,则会自动拉取这些更改并应用到集群里去

关于Git存储库建议将源代码库和配置文件库分开创建,以便更好地应用到集群里去

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐