对齐文件规范
This commit is contained in:
@@ -3,7 +3,15 @@
|
||||
> 目标:给一组已经装好 OS、可以 SSH 的裸金属/虚机,**一键完成基础初始化 + 安装 k3s server/worker**,得到与 `01-01`、`01-02` 文档一致的集群(含 `/storage` 数据盘方案)。
|
||||
>
|
||||
> **状态:已验证**(2026-03,Fedora + K3s,4 节点 61~64)。
|
||||
> 部署环境详见 `00-04-部署环境说明.md`。
|
||||
> 部署环境详见 `00-02-部署环境说明.md`。
|
||||
|
||||
## TL;DR
|
||||
|
||||
- **一键安装**:`./scripts/deploy-lab.sh k3s`
|
||||
- **一键验收**:`./scripts/verify.sh run 01-06`(或直接 `./scripts/verify.sh full`)
|
||||
- **关键前置**:控制端可 SSH 所有节点;`ansible/inventory.ini` 私钥路径存在且权限正确;(可选)每台节点已挂载 `/storage` 或启用 `K3S_PREPARE_STORAGE=true`
|
||||
- **成功判据**:所有节点 `Ready`;kube-system 核心组件就绪;后续按 `02-05` 可跑入口验证
|
||||
- **失败排障**:见本文「排障」小节(SSH/私钥、/storage、firewalld、k3s service)
|
||||
|
||||
## 1. 适用边界与前提
|
||||
|
||||
@@ -22,7 +30,7 @@
|
||||
- **数据盘**:若使用 `/storage` 方案,每台节点须将**独立数据盘**挂载到 `/storage`(与 `/` 不同设备),详见 `00-04` 与下文「数据盘准备」。
|
||||
- 不覆盖:
|
||||
- 从「完全裸铁 + 无系统」开始的 PXE 装机;
|
||||
- 高级 HA(多 server + 外部 datastore)——仍按 `01-04`、`03-10` 执行。
|
||||
- 高级 HA(多 server + 外部 datastore)——仍按 `01-08`、`03-08` 执行。
|
||||
|
||||
### 1.1 数据盘准备(手工,或与自动化二选一)
|
||||
|
||||
@@ -43,17 +51,17 @@ XFS 用户将 `mkfs.ext4` / `fstab` 类型改为 `xfs` 即可(Longhorn 支持
|
||||
**自动化(可选)**:在 `group_vars/all.yml` 中设置 `k3s_prepare_storage: true` 与 `k3s_data_disk_device: /dev/vdb`(四台盘符一致时一条即可;不一致则用 `host_vars/<hostname>.yml` 覆盖),然后执行:
|
||||
|
||||
```bash
|
||||
ansible-playbook -i inventory.ini playbooks/k3s-prepare-storage.yml
|
||||
ansible-playbook -i inventory.ini playbooks/verify/01-06.yml
|
||||
```
|
||||
|
||||
该 playbook 在 `/storage` 已是独立挂载时会跳过,避免重复执行。
|
||||
|
||||
### 1.2 推荐执行顺序(10G + 32G 四节点)
|
||||
|
||||
1. (可选)`playbooks/k3s-prepare-storage.yml`
|
||||
2. `playbooks/k3s-init-and-install.yml`(可在 `group_vars` 中设 `k3s_verify_storage_mount: true` 强制校验 `/` 与 `/storage` 不同源)
|
||||
3. (可选)`playbooks/longhorn-install.yml`(Helm,见 `03-07`)
|
||||
4. (可选)`playbooks/apply-local-path-config-lab.yml`,或 `longhorn_apply_local_path_lab: true` 随 Longhorn 一并应用(真源:`files/kube-system/local-path-config-lab.json`,见 `03-05`)
|
||||
1. (可选)`playbooks/verify/01-06.yml`
|
||||
2. `playbooks/verify/01-06.yml`(可在 `group_vars` 中设 `k3s_verify_storage_mount: true` 强制校验 `/` 与 `/storage` 不同源)
|
||||
3. (可选)`playbooks/verify/03-07.yml`(Helm,见 `03-07`)
|
||||
4. (可选)`playbooks/verify/03-05.yml`,或 `longhorn_apply_local_path_lab: true` 随 Longhorn 一并应用(真源:`files/kube-system/local-path-config-lab.json`,见 `03-05`)
|
||||
|
||||
## 2. 目录结构
|
||||
|
||||
@@ -66,10 +74,10 @@ ansible/
|
||||
group_vars/
|
||||
all.yml
|
||||
playbooks/
|
||||
k3s-prepare-storage.yml # 可选:第二块盘分区、挂载 /storage
|
||||
k3s-init-and-install.yml # 标准 IPv4 安装
|
||||
longhorn-install.yml # 可选:Helm 安装 Longhorn
|
||||
apply-local-path-config-lab.yml # 可选:仅应用 local-path 实验室 ConfigMap
|
||||
verify/
|
||||
01-06.yml # 标准 IPv4 安装(-e k3s_do_install=true);可选准备数据盘(-e k3s_do_prepare_storage=true)
|
||||
03-07.yml # 可选:Helm 安装 Longhorn
|
||||
03-05.yml # 可选:仅应用 local-path 实验室 ConfigMap(-e local_path_apply_lab_config=true)
|
||||
files/
|
||||
longhorn/values-lab.yaml # 实验室 Helm values
|
||||
kube-system/local-path-config-lab.json
|
||||
@@ -116,11 +124,11 @@ k3s_worker
|
||||
|
||||
**存储挂载校验**(推荐实验室开启):
|
||||
|
||||
- `k3s_verify_storage_mount: true`:在 `k3s-init-and-install.yml` 安装 k3s **之前**,断言 `/storage` 为挂载点且与 `/` 不同块设备;失败时提示查阅 `00-04`。已有「目录式假 /storage」的旧环境可临时设为 `false`。
|
||||
- `k3s_verify_storage_mount: true`:在 `01-06.yml` 安装 k3s(`-e k3s_do_install=true`)**之前**,断言 `/storage` 为挂载点且与 `/` 不同块设备;失败时提示查阅 `00-04`。已有「目录式假 /storage」的旧环境可临时设为 `false`。
|
||||
|
||||
**数据盘自动化**(可选):
|
||||
|
||||
- `k3s_prepare_storage: true` 且 `k3s_data_disk_device: /dev/vdb`:由 `k3s-prepare-storage.yml` 执行(见 §1.1)。
|
||||
- `k3s_prepare_storage: true` 且 `k3s_data_disk_device: /dev/vdb`:由 `01-06.yml -e k3s_do_prepare_storage=true` 执行(见 §1.1)。
|
||||
|
||||
## 5. 执行流程概览
|
||||
|
||||
@@ -159,11 +167,11 @@ playbook 依次执行:
|
||||
```bash
|
||||
cd ansible
|
||||
# (可选)先准备数据盘挂载 /storage
|
||||
# ansible-playbook -i inventory.ini playbooks/k3s-prepare-storage.yml
|
||||
# ansible-playbook -i inventory.ini playbooks/verify/01-06.yml
|
||||
# 标准 IPv4 安装
|
||||
ansible-playbook -i inventory.ini playbooks/k3s-init-and-install.yml
|
||||
ansible-playbook -i inventory.ini playbooks/verify/01-06.yml
|
||||
# (可选)Helm 安装 Longhorn
|
||||
# ansible-playbook -i inventory.ini playbooks/longhorn-install.yml
|
||||
# ansible-playbook -i inventory.ini playbooks/verify/03-07.yml
|
||||
```
|
||||
|
||||
执行结束后,playbook 会输出:
|
||||
@@ -193,3 +201,9 @@ KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl get pods -n kube-system -o wide
|
||||
- `03-09-k3s-gitops-集群配置管理.md`:用 Argo CD/Flux 管理 Traefik、监控、应用清单;
|
||||
- `01-01`、`01-02` 中的验证命令与入口验证。
|
||||
|
||||
## 排障
|
||||
|
||||
- **Ansible 连不上节点**:先在控制端跑 `./scripts/verify.sh preflight`;检查 `ansible/inventory.ini` 主机名/IP、`ansible_user`、私钥路径与权限(600)。
|
||||
- **/storage 校验失败**:确认每台节点 `/storage` 为独立挂载点;必要时先跑 `K3S_PREPARE_STORAGE=true ./scripts/deploy-lab.sh k3s` 或单独跑 `ansible/playbooks/verify/01-06.yml`。
|
||||
- **kube-system 组件不就绪**:在 server 上 `journalctl -u k3s -n 200 --no-pager`,以及 `kubectl -n kube-system get pods -o wide`/`describe` 查看事件。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user