结论:GitOps 以 Git 仓库作为系统期望状态的唯一事实来源(Single Source of Truth),由集群内的 Operator 持续对比实际状态与期望状态并自动收敛,实现声明式、可审计、可回滚的持续交付。

展开:四项核心原则:1)声明式描述整个系统(K8s YAML/Helm/Kustomize);2)版本化存储于 Git,变更全部走 MR,天然带评审、审计、签名;3)自动拉取应用——Agent(Argo CD/Flux)部署在集群内拉模式同步,区别于传统 CI 的推模式,CI 系统不再需要集群凭据,安全边界更清晰;4)持续调和——漂移检测,有人手动 kubectl 改了集群会被发现并可自动回正。典型工作流:CI 只负责构建镜像并把新 tag 写回配置仓库(或由 ArgoCD Image Updater 做),Argo CD 检测到仓库变化后同步到集群,回滚 = git revert。实践要点:1)代码仓库与配置仓库分离,避免代码提交触发全量发布;2)多环境用 overlay(Kustomize)或 values 文件(Helm)管理差异,禁止环境间复制粘贴;3)密钥不入库,配合 Sealed Secrets / External Secrets;4)sync 策略区分:dev 自动 sync+selfHeal,生产手动 sync 或加审批。易错点:GitOps 管的是部署状态,不管构建——CI 测试门禁依然必要,两者是互补关系。