gitops 简单介绍
它的核心是使用 Git 仓库来管理基础设施和应用的配置,并且以 Git 仓库作为基础设施和应用的单一事实来源
Git 仓库中的声明式配置描述了目标环境当前所需基础设施的期望状态,借助于 GitOps,如果集群的实际状态与 Git 仓库中定义的期望状态不匹配,Kubernetes reconcilers 会根据期望状态来调整当前的状态,最终使实际状态符合期望状态
GitOps 是一种技术手段,而 DevOps 是一种文化
CI 流水线
验证配置文件、执行自动化测试、检测代码的复杂性、构建 OCI 镜像、将镜像推送到镜像仓库
CD 流水线
将变更应用到目标系统中(比如 Kubernetes 集群)
Push 模式
在 CI 流水线运行完成后执行一个命令(比如 kubectl)将应用部署到目标环境中
Pull 模式
Pull 模式会在目标环境中安装一个 Agent,例如在 Kubernetes 集群中就靠 Operator 来充当这个 Agent。Operator 会周期性地监控目标环境的实际状态,并与 Git 仓库中的期望状态进行比较,如果实际状态不符合期望状态,Operator 就会更新基础设施的实际状态以匹配期望状态