GitOps

GitOps 笔记 一、GitOps 概述 什么是 GitOps? GitOps 是一种云原生时代的运维模式和最佳实践,由 Weaveworks 于 2017 年提出。它将 Git 仓库作为唯一的真相来源(Single Source of Truth),用于管理基础设施和应用程序的声明式配置。所有变更通过 Git 的 Pull Request(或 Merge Request)来驱动,自动化工具(如 ArgoCD 或 Flux)负责将 Git 中的期望状态同步到实际环境中(尤其是 Kubernetes 集群)。 GitOps 是 DevOps 的延伸,专注于持续部署(Continuous Deployment),强调声明式(Declarative)而非命令式(Imperative)操作。 核心原则(OpenGitOps 项目定义的四大原则): 整个系统声明式描述:所有配置(基础设施、应用)都用声明式文件(如 YAML)描述,并存储在 Git 中。 Git 作为规范状态的唯一来源:Git 仓库定义了系统的“期望状态”,任何变更必须通过 Git 提交。 变更通过合并请求批准并应用:利用 Git 的代码审查、分支策略,确保变更可审计、可追溯。 软件代理自动确保一致性:工具持续监控实际状态与 Git 中的差异,自动校正(漂移检测与修复)。 GitOps 的优势: 安全性高:开发者无需直接访问 Kubernetes 集群权限,只需 Git 权限;工具运行在集群内(Pull 模式),减少暴露风险。 可靠性强:Git 提供版本控制、审计轨迹、快速回滚。 一致性好:避免手动操作导致的配置漂移,生产/测试环境易保持一致。 协作高效:开发者熟悉 Git,易于代码审查和团队协作。 自动化程度高:支持多集群、多环境管理,适合云原生应用。 与传统 CI/CD 的区别: 传统 CI/CD 多为 Push 模式(CI 服务器推送变更到集群)。 GitOps 多为 Pull 模式(集群内工具拉取 Git 变更),更安全、更适合 Kubernetes 的声明式架构。 常见工具: ...

3 分钟 · 阿征