使用 GitOps 方式管理配置
配置管理问题
在前面的章节中,我们将每个应用的配置都单独放到一个目录,并使用 kustomize 的方式组织目录结构。当需要对配置进行改动时 ,修改相应的配置文件后需重新 apply 一下,操作起来相对繁琐,另外还存在一个难题:这些配置存放在哪,以谁的为准?如果放到路由器内,每次修改配置需要先 SSH 登录路由器进行修改并重新 apply;如果存放到自己电脑,每次修改配置都要指定用这台电脑进行修改;如果在多个设备都有保存配置,那还需要保证每个设备的配置保持同步,否则容易导致配置错乱。
GitOps 管理方案
为了解决前面提到的配置管理问题,我们可以采用 GitOps
的理念,将路由器里所有应用的配置,放到一个 Git 仓库中,然后 GitOps
工具会对比集群中的配置与 Git 仓库中声明的配置,确保集群中的配置始终符合 Git 仓库中的配置。
当要修改配置时,直接将修改提交到 Git 仓库即可,GitOps
工具会自动拉取 Git 仓库并进行调谐,将改动 apply 到集群中。
Argo CD 介绍
Argo CD 是 Kubernetes 生态中流行的 GitOps
工具,支持 kustomize
、helm
、jsonnet
以及 YAML
和 JSON
方式定义 kubernetes manifests。本文将介绍如何利用 Argo CD 来管理云原生家庭网络的配置。