Argo CD 实践 GitOps
介绍 书接上文 OneDev 自建 Git 服务和 CI/CD,这次通过 ArgoCD 实现项目部署,项目编译、镜像构建依然通过 OneDev 流水线实现。当然用别的 Git 服务也是可以的。 Argo CD 被实现为一个 kubernetes 控制器,它持续监控正在运行的应用程序并将当前的活动状态与所需的目标状态(如 Git repo 中指定的)进行比较。Argo CD 报告和可视化差异,同时提供自动或手动将实时状态同步回所需目标状态的工具。 上次 git 仓库只有一个,这次 git 仓库分为两个 wx-msg-push 为项目代码 gitops 应用部署定义 整体流程为: wx-msg-push 正常开发提交 当创建 tag 推送时,触发 OneDev 流水线构建 检出 wx-msg-push 代码,在容器中编译可执行文件,生成多平台可执行文件压缩包制品 通过 kaniko 构建 wx-msg-push 项目镜像,推送至镜像仓库 检出 gitops 代码,修改 wx-msg-push 项目 yaml 文件的镜像版本后 push 在 argocd 中发现 gitops 配置变更 同步应用最新状态 安装部署 高可用配置请参考 High Availability $ kubectl create namespace argocd $ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml 安装之后默认会启用 TLS 验证和 http 强制跳转至 https。 我这里不需要,直接修改 argocd-server 配置 kubectl -n argocd edit deployments.apps argocd-server,增加运行 insecure 运行参数,取消该限制。 ...