feat: 按 doc_id 重组 ansible/files 与验证框架

- ansible/files 改为与文档 XX-YY 对齐的目录结构,更新相关 playbook 路径
- 新增 scripts/verify.sh 与 ansible/playbooks/verify/*.yml,移除单体 verify-matrix.yml
- 补充 docs/00-02 矩阵状态、00-05 验证框架与流程、00-04 环境与 ylc65 工作机说明
- 增加 k3s 存储准备、Longhorn、local-path 等 playbook 与辅助脚本

Made-with: Cursor
This commit is contained in:
2026-03-26 07:01:14 +08:00
parent a67788de56
commit 8c43761962
192 changed files with 4006 additions and 320 deletions

View File

@@ -4,16 +4,19 @@
## 1. 节点与角色
| 主机名 | IP | 角色 | 说明 |
| ----- | ------------ | ---------- | -------------------------- |
| ylc61 | 192.168.2.61 | k3s server | 控制节点,运行 API、etcd、Traefik 等 |
| ylc62 | 192.168.2.62 | k3s worker | 工作节点 |
| ylc63 | 192.168.2.63 | k3s worker | 工作节点 |
| ylc64 | 192.168.2.64 | k3s worker | 工作节点 |
| 主机名 | IP | 角色 | 说明 |
| -------- | ------------- | --------------- | --------------------------------------- |
| ylc61 | 192.168.2.61 | k3s server | 控制节点,运行 API、etcd、Traefik 等 |
| ylc62 | 192.168.2.62 | k3s worker | 工作节点 |
| ylc63 | 192.168.2.63 | k3s worker | 工作节点 |
| ylc64 | 192.168.2.64 | k3s worker | 工作节点 |
| ylc65 | 192.168.2.65 | Linux 工作机(非 K3s | **不参与** `kubectl get nodes`;提供日常 **Linux/x86_64** 环境,用于克隆本仓库、跑 `ansible-playbook` / `scripts/verify.sh`、编辑与排障;通过 SSH 连 ylc61ylc64 执行自动化,磁盘与 **§3.1 K3s 节点约定无关**(按本机实际即可) |
| openwrt | 192.168.2.1 | OpenWrt 主路由 | 局域网网关;可选 HAProxy 将 80/443 转发至 K3s`01-07` |
| onecloud | 192.168.2.22 | ARM32Armbian | 非 K3s 集群节点armv7 / NFS 等文档的实验或外部 curl 来源 |
- Kubernetes 中的节点名使用短主机名( `ylc61``ylc64`),与 inventory 中主机名一致,便于配合 Cloudflare CDN若计算机 hostname 为 FQDN本机解析会优先走本地导致无法访问
- 控制机(运行 `ansible-playbook`)可任选一台,通常为 ylc61 或本机
- Kubernetes 中的节点名使用短主机名(**仅** `ylc61``ylc64` 四类 K3s 机器),与 inventory 中 `[k3s_server]` / `[k3s_worker]` 一致;`ylc65` **不是**集群成员。便于配合 Cloudflare CDN若计算机 hostname 为 FQDN本机解析会优先走本地导致无法访问
- **控制机**(运行 `ansible-playbook``verify.sh`):推荐 **`ylc65`Linux 工作机)** 或 ylc61亦可在你的本机 Linux 上执行,只要装好 Ansible、能 SSH 到 inventory 中的节点
## 2. 软件版本(已验证)
@@ -28,10 +31,32 @@
## 3. 网络与存储
- **网段**192.168.2.0/24
- **可选**OpenWrt 网关(如 192.168.2.1)上配置 HAProxy 负载均衡,将 80/443 转发到 K3s 节点,见 `01-07-openwrt-haproxy.md`
- **数据盘方案**`/storage`server 与 worker 均使用 `--data-dir=/storage`
- **可选**OpenWrt 主路由(上表 `openwrt`192.168.2.1)上配置 HAProxy 负载均衡,将 80/443 转发到 K3s 节点,见 `01-07-openwrt-haproxy.md`
### 3.1 磁盘规划(四台 K3s 节点统一10G + 32G
本仓库验证环境约定:**每台 K3s 节点**`ylc61``ylc64`,即 1 server + 3 worker各用一块约 **10G 系统盘**(根文件系统)+ 一块约 **32G 数据盘**,与 Longhorn、K3s `--data-dir` 实验相匹配。**`ylc65` 为工作机,不适用本节 `/storage` 与 K3s 数据盘约定。**
- **`/storage` 必须是独立挂载点**(数据盘格式化后挂载),**不能**只是根分区上的普通目录否则镜像、local-path、Longhorn 仍会写满系统盘,控制节点易出现 **DiskPressure**
- **K3s**server 与 worker 均使用 `--data-dir=/storage`(见 `ansible/group_vars/all.yml`)。
- **token 路径**`/storage/server/token`
**自检(每台执行)**
```bash
findmnt -n -o SOURCE / /storage
lsblk -f
```
两行 `SOURCE` 应指向**不同**块设备(或不同 LV`/storage` 未单独挂载,请先完成分区、格式化、`/etc/fstab` 再装 K3s`01-06`)。
### 3.2 推荐自动化顺序
1. (可选)`ansible/playbooks/k3s-prepare-storage.yml`:声明 `k3s_data_disk_device` 并启用 `k3s_prepare_storage` 时,幂等准备 `/storage`
2. `ansible/playbooks/k3s-init-and-install.yml`:安装 K3s可开启 `k3s_verify_storage_mount` 校验挂载)。
3. (可选)`ansible/playbooks/longhorn-install.yml`Helm 安装 Longhorn`ansible/files/03-07-longhorn/values-lab.yaml`)。
4. (可选)按 `03-05` 应用本仓库 **local-path** ConfigMap 真源(`ansible/files/03-05-local-path-config/local-path-config-lab.json`)。
## 4. 防火墙
- **firewalld**:启用
@@ -42,14 +67,16 @@
## 5. Ansible 相关
- **inventory**`ansible/inventory.ini`,分组 `k3s_server``k3s_worker``k3s_nodes`
- **inventory**`ansible/inventory.ini`,分组 `k3s_server``k3s_worker``k3s_nodes`**勿**将 `ylc65` 列入 K3s 分组;工作机只作为 Ansible 控制端)
- **变量**`ansible/group_vars/all.yml`,含 `k3s_data_dir``k3s_server_ip``k3s_manage_`* 等
- **playbookk3s**`ansible/playbooks/k3s-init-and-install.yml`
- **playbooknginx 矩阵**`ansible/playbooks/nginx-matrix-deploy.yml`manifests 在 `ansible/files/nginx-matrix/`,文档 `02-05`
- **playbooknginx TLS 矩阵**`ansible/playbooks/nginx-matrix-tls-deploy.yml`manifests 在 `ansible/files/nginx-matrix-tls/`,文档 `03-02`02-05 升级版)
- **playbook数据盘,可选**`ansible/playbooks/k3s-prepare-storage.yml`
- **playbookLonghorn可选**`ansible/playbooks/longhorn-install.yml`Helm + `ansible/files/03-07-longhorn/values-lab.yaml`,文档 `03-07`
- **playbooknginx 矩阵)**`ansible/playbooks/nginx-matrix-deploy.yml`manifests 在 `ansible/files/02-05-nginx-matrix/`,文档 `02-05`
- **playbooknginx TLS 矩阵)**`ansible/playbooks/nginx-matrix-tls-deploy.yml`manifests 在 `ansible/files/03-02-nginx-matrix-tls/`,文档 `03-02`02-05 升级版))
- **SSH**root 连接,`scripts/ssh/setup-k3s-workers-ssh.sh` 预配密钥
## 6. 验证时间
- 2026-034 节点集群按 `01-06` 一次性安装成功,各节点 Traefik 入口 404 可达。
- 2026-03**4 节点**1 server + 3 worker集群按 `01-06` 一次性安装成功,各节点 Traefik 入口 404 可达。自动化与验证常在 **`ylc65` Linux 工作机**上执行,该主机不参与 K3s。