- 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
5.5 KiB
5.5 KiB
00-04-部署环境说明
本文描述本仓库文档所针对的验证环境:节点布局、IP、OS、K3s 版本等。其他环境按需对照调整。
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 | 工作节点 |
| ylc65 | 192.168.2.65 | Linux 工作机(非 K3s) | 不参与 kubectl get nodes;提供日常 Linux/x86_64 环境,用于克隆本仓库、跑 ansible-playbook / scripts/verify.sh、编辑与排障;通过 SSH 连 ylc61~ylc64 执行自动化,磁盘与 §3.1 K3s 节点约定无关(按本机实际即可) |
| openwrt | 192.168.2.1 | OpenWrt 主路由 | 局域网网关;可选 HAProxy 将 80/443 转发至 K3s,见 01-07 |
| onecloud | 192.168.2.22 | ARM32(Armbian) | 非 K3s 集群节点;armv7 / NFS 等文档的实验或外部 curl 来源 |
- 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. 软件版本(已验证)
| 组件 | 版本 | 备注 |
|---|---|---|
| OS | Fedora 43 Server (CoreOS) | 其他 RHEL 系 / Debian 系按文档说明适配 |
| K3s | v1.34.5+k3s1 | 来自 get.k3s.io 默认 |
| Ansible | ansible-core 2.18 | 用于 01-06 自动化安装 |
3. 网络与存储
- 网段:192.168.2.0/24
- 可选: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
自检(每台执行):
findmnt -n -o SOURCE / /storage
lsblk -f
两行 SOURCE 应指向不同块设备(或不同 LV);若 /storage 未单独挂载,请先完成分区、格式化、/etc/fstab 再装 K3s(见 01-06)。
3.2 推荐自动化顺序
- (可选)
ansible/playbooks/k3s-prepare-storage.yml:声明k3s_data_disk_device并启用k3s_prepare_storage时,幂等准备/storage。 ansible/playbooks/k3s-init-and-install.yml:安装 K3s(可开启k3s_verify_storage_mount校验挂载)。- (可选)
ansible/playbooks/longhorn-install.yml:Helm 安装 Longhorn(ansible/files/03-07-longhorn/values-lab.yaml)。 - (可选)按
03-05应用本仓库 local-path ConfigMap 真源(ansible/files/03-05-local-path-config/local-path-config-lab.json)。
4. 防火墙
- firewalld:启用
- 已放行端口:
- 6443/tcp(k3s API,仅 server)
- 8472/udp(flannel VXLAN,全部节点)
- flannel.1、cni0 加入 trusted zone
5. Ansible 相关
- 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_* 等 - playbook(k3s):
ansible/playbooks/k3s-init-and-install.yml - playbook(数据盘,可选):
ansible/playbooks/k3s-prepare-storage.yml - playbook(Longhorn,可选):
ansible/playbooks/longhorn-install.yml(Helm +ansible/files/03-07-longhorn/values-lab.yaml,文档03-07) - playbook(nginx 矩阵):
ansible/playbooks/nginx-matrix-deploy.yml(manifests 在ansible/files/02-05-nginx-matrix/,文档02-05) - playbook(nginx 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-03:4 节点(1 server + 3 worker)集群按
01-06一次性安装成功,各节点 Traefik 入口 404 可达。自动化与验证常在ylc65Linux 工作机上执行,该主机不参与 K3s。