一、前言
讲述关于argocd在cicd流程中的使用,ci这里使用gitlab+jenkins流水线的方式,jenkins用于拉代码打包、构建镜像、变更yaml文件的镜像、推送变更的yaml文件到gitlab的gitops仓库中,最后再有argocd实现cd流程,
二、使用
关于jenkins的pipeline就不展示了,实现这套cicd的关键流程就在于pipeline更新完镜像仓库后,更新本地的yaml文件中的镜像,在推到gitlab上的gitops仓库中即可等待argocd自动同步gitlab仓库中的yaml文件变化去滚动更新pod
cd的配置流程
在gitlab上创建gitops仓库存放不同服务的yaml文件
创建对应服务的目录用于存放yaml文件
将部署服务的yaml文件放到对应的目录下
配置argocd添加gitlab仓库地址
创建 app
创建后会显示outofsync未同步
看一下该服务里的pod
可以执行同步,执行同步后会滚动更新pod
可以看到滚动更新的过程
更新完成后会保留之前的replicas用于服务 的回滚
将手动同步更改为自动同步,argocd就会每隔三分钟去gitops仓库检测目录下的yaml文件是否有更新,有更新就会触发同步根据新的yaml文件进行滚动更新
更改成自动同步后,可以在gitops中更新yaml文件,三分钟后argocd就会自动进行同步更新,这样就可以作为自动化的cd流程使用
argocd版本回滚