在 OpenShift 上使用 Helm 构建 GitOps 管道:来自实战的经验教训

主要观点:作者在 Kubernetes 部署中历经“快速修复”导致生产事故后,成为 GitOps 的坚定信徒,分享了团队将整个微服务平台迁移到 GitOps 工作流的经验,包括选择的工具、架构组织、设置步骤、应用定义、遇到的问题及解决方法等,并给出了一些建议。
关键信息:

  • 选择 Helm + OpenShift + ArgoCD 组合解决了不一致环境、无回滚策略和过多手动干预等问题。
  • GitOps 核心是将 Git 作为集群运行的单一真相源,通过自动化处理部署。
  • 组织 Git 仓库时,将值文件按环境分离,共享基础设施单独存放。
  • 设置 ArgoCD 时需注意更改默认密码、处理与私有 Git 仓库的通信等。
  • 应用定义中使用不同 Git 分支,设置 prune 和 selfHeal 等策略。
  • 与 CI 管道集成,CI 更新 Git 而非直接部署到 Kubernetes。
  • 总结了在 Secret 管理、资源限制、RBAC 等方面遇到的问题及解决办法。
    重要细节:
  • 团队最初尝试过不同方法,最终确定此组合。
  • 列举了 Git 仓库的结构及各部分作用。
  • 详细说明了 ArgoCD 应用定义的内容及注意事项。
  • 分享了在 CI 管道中更新 Helm 值文件的脚本。
  • 给出了关于开始使用 GitOps 的建议,如从小规模开始等。
阅读 17
0 条评论