Files
Deploy-Laboratory/docs/00-04-部署环境说明.md
jack 8c43761962 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
2026-03-26 07:01:14 +08:00

5.5 KiB
Raw Blame History

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 连 ylc61ylc64 执行自动化,磁盘与 §3.1 K3s 节点约定无关(按本机实际即可)
openwrt 192.168.2.1 OpenWrt 主路由 局域网网关;可选 HAProxy 将 80/443 转发至 K3s01-07
onecloud 192.168.2.22 ARM32Armbian 非 K3s 集群节点armv7 / NFS 等文档的实验或外部 curl 来源
  • Kubernetes 中的节点名使用短主机名( ylc61ylc64 四类 K3s 机器),与 inventory 中 [k3s_server] / [k3s_worker] 一致;ylc65 不是集群成员。便于配合 Cloudflare CDN若计算机 hostname 为 FQDN本机解析会优先走本地导致无法访问
  • 控制机(运行 ansible-playbookverify.sh):推荐 ylc65Linux 工作机) 或 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 主路由(上表 openwrt192.168.2.1)上配置 HAProxy 负载均衡,将 80/443 转发到 K3s 节点,见 01-07-openwrt-haproxy.md

3.1 磁盘规划(四台 K3s 节点统一10G + 32G

本仓库验证环境约定:每台 K3s 节点ylc61ylc64,即 1 server + 3 worker各用一块约 10G 系统盘(根文件系统)+ 一块约 32G 数据盘,与 Longhorn、K3s --data-dir 实验相匹配。ylc65 为工作机,不适用本节 /storage 与 K3s 数据盘约定。

  • /storage 必须是独立挂载点(数据盘格式化后挂载),不能只是根分区上的普通目录否则镜像、local-path、Longhorn 仍会写满系统盘,控制节点易出现 DiskPressure
  • K3sserver 与 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 再装 K3s01-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.ymlHelm 安装 Longhornansible/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:启用
  • 已放行端口
    • 6443/tcpk3s API仅 server
    • 8472/udpflannel VXLAN全部节点
    • flannel.1、cni0 加入 trusted zone

5. Ansible 相关

  • inventoryansible/inventory.ini,分组 k3s_serverk3s_workerk3s_nodesylc65 列入 K3s 分组;工作机只作为 Ansible 控制端)
  • 变量ansible/group_vars/all.yml,含 k3s_data_dirk3s_server_ipk3s_manage_* 等
  • playbookk3sansible/playbooks/k3s-init-and-install.yml
  • playbook数据盘可选ansible/playbooks/k3s-prepare-storage.yml
  • playbookLonghorn可选ansible/playbooks/longhorn-install.ymlHelm + ansible/files/03-07-longhorn/values-lab.yaml,文档 03-07
  • playbooknginx 矩阵)ansible/playbooks/nginx-matrix-deploy.ymlmanifests 在 ansible/files/02-05-nginx-matrix/,文档 02-05
  • playbooknginx TLS 矩阵)ansible/playbooks/nginx-matrix-tls-deploy.ymlmanifests 在 ansible/files/03-02-nginx-matrix-tls/,文档 03-0202-05 升级版))
  • SSHroot 连接,scripts/ssh/setup-k3s-workers-ssh.sh 预配密钥

6. 验证时间

  • 2026-034 节点1 server + 3 worker集群按 01-06 一次性安装成功,各节点 Traefik 入口 404 可达。自动化与验证常在 ylc65 Linux 工作机上执行,该主机不参与 K3s。