57 lines
2.2 KiB
Markdown
57 lines
2.2 KiB
Markdown
# 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 仓库,例如:
|
||
|
||
```text
|
||
homelab-k3s-gitops/
|
||
clusters/
|
||
ylc-k3s-01/
|
||
kustomization.yaml
|
||
apps/
|
||
traefik/
|
||
monitoring/
|
||
homer/
|
||
openlist/
|
||
gitlab/
|
||
```
|
||
|
||
本仓库依然作为「文档 + 脚本 + ansible playbook」的入口,GitOps 仓库只存 K8s 清单。
|
||
|
||
## 3. 最小 Argo CD 部署思路(示意)
|
||
|
||
> 如果未来你决定使用 Argo CD,可以按以下思路展开(这里不给出完整清单,仅做导航):
|
||
|
||
1. 在 k3s 集群中安装 Argo CD(官方 `install.yaml` 或 Helm);
|
||
2. 暴露 Argo CD Server(通过 Traefik IngressRoute 或 NodePort);
|
||
3. 在 Argo CD 中创建一个 Application,指向 GitOps 仓库的 `clusters/ylc-k3s-01`;
|
||
4. 在 `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 等现有专题的映射关系。
|
||
|