2.2 KiB
2.2 KiB
03-09-k3s-gitops-集群配置管理(框架草案)
本文先给出 GitOps 管理 k3s 集群的大致框架,后续可以按需要再细化成完整实践。 目标:在
01-07自动装好 k3s 之后,由 GitOps 工具(Argo CD / Flux)自动把 Traefik、监控、应用等 YAML 下发到集群。
1. 选型与边界
- GitOps 工具二选一:
- Argo CD:UI 友好、概念清晰,适合个人实验;
- Flux:更轻量,完全 Git 驱动,命令行为主。
- 建议先选其中一个,不要在同一集群同时跑两套 GitOps。
2. 仓库结构建议(与本仓库的关系)
建议将「集群声明性配置」与本仓库代码/文档区分开,形成一个专门的 GitOps 仓库,例如:
homelab-k3s-gitops/
clusters/
ylc-k3s-01/
kustomization.yaml
apps/
traefik/
monitoring/
homer/
openlist/
gitlab/
本仓库依然作为「文档 + 脚本 + ansible playbook」的入口,GitOps 仓库只存 K8s 清单。
3. 最小 Argo CD 部署思路(示意)
如果未来你决定使用 Argo CD,可以按以下思路展开(这里不给出完整清单,仅做导航):
- 在 k3s 集群中安装 Argo CD(官方
install.yaml或 Helm); - 暴露 Argo CD Server(通过 Traefik IngressRoute 或 NodePort);
- 在 Argo CD 中创建一个 Application,指向 GitOps 仓库的
clusters/ylc-k3s-01; - 在
clusters/ylc-k3s-01/kustomization.yaml中列出:- Traefik 扩展配置;
- Prometheus+Grafana;
- Homer、openlist、GitLab 等应用的 Kustomize/Helm 目录。
4. 与现有文档的衔接
01-07-节点初始化-ansible-实践.md:负责从「可 SSH 裸机」到「k3s 就绪」;- 本篇
03-11:负责从「k3s 就绪」到「配置由 Git 驱动下发」; - 其他
02-**、04-**、05-**文档中的部署命令,可以逐步迁移为 GitOps 仓库中的 YAML/Kustomize/Helm 定义。
5. 后续可以补充的内容(TODO)
- 针对 Argo CD 或 Flux 选定一个具体方案,写出:
- 详细安装步骤;
- GitOps 仓库的完整示例结构;
- 与 Cloudflare Tunnel、监控、openlist 等现有专题的映射关系。