Skip to content

多节点集群与低成本重建 ​

这一页讲两件事:为什么必须多节点,以及环境释放后如何低成本重搭。

1. 为什么必须多节点 ​

单机 K8s 能跑容器,但验证不了:

  • 跨节点调度与网络;
  • Kafka/SeaweedFS/Doris 的多副本;
  • 节点故障后的 Pod 漂移;
  • 控制面与工作负载分离。

所以数据平台至少 3 节点,哪怕只是测试。

2. 推荐拓扑 ​

text
3 节点:
  node1  control-plane + 部分组件
  node2  worker
  node3  worker

5 节点(可选):
  node1-3  control-plane
  node4-5  worker

3 节点够做功能验证;5 节点才适合做 HA/故障演练。

不要用 3 台 16G 硬撑全栈,内存会先爆。

3. 采购硬性要求 ​

  • [ ] 同一 VPC,内网互通;
  • [ ] 数据盘是裸盘,能自己格式化;
  • [ ] CPU 支持 AVX2(Doris);
  • [ ] 能开放 NodePort 安全组;
  • [ ] 支持快照或自定义镜像;
  • [ ] 关机/释放计费规则清楚。

4. 存储选择 ​

方案适合
local-path测试、单节点数据
SeaweedFSS3 兼容、Iceberg 数据
Ceph生产级分布式块/对象存储

测试期推荐 local-path + SeaweedFS;Ceph 需要裸盘和更多维护时间。

5. 低成本重建原则 ​

5.1 环境即代码 ​

  • K8s 初始化脚本;
  • 每个组件的 values/manifest;
  • 建库、建桶、建 topic 的 SQL/脚本;
  • 造数脚本固定 seed。

5.2 镜像可恢复 ​

  • 大镜像推到 Harbor 或导出 tar;
  • 不依赖“节点上刚好有某个镜像”;
  • 记录镜像 tag,不用 latest。

5.3 数据可重建 ​

  • 测试数据用固定 seed 重新生成;
  • Iceberg 数据文件不长期保留;
  • 元数据库只保留脚本,不依赖手工状态。

5.4 组件按需启动 ​

  • 先起 K8s + 存储 + PG;
  • 再起 Kafka/Flink;
  • 最后起 Doris/DS/OM;
  • 不要一次性把所有组件拉起来抢内存。

6. 目录结构 ​

建议把可复用内容放仓库:

text
deploy/
├─ bootstrap/          节点初始化、kubeadm
├─ manifests/          PG/MySQL/Kafka/Flink/Doris/SHS
├─ values/             SeaweedFS/Harbor/DS/OM
├─ sql/                建库、建表、topic
├─ scripts/            造数、验证、清理
└─ README.md           重建顺序

一次性排障脚本不要进仓库,避免污染。

7. 重建流程 ​

text
1. 买 3 台,确认内网/数据盘/AVX2
2. 跑 bootstrap,三节点 Ready
3. 装 local-path + PG + SeaweedFS
4. 起 Kafka + MySQL + Flink
5. 起 Doris + DS + Harbor + SHS
6. 跑端到端和 1M 验证
7. 记录版本与结果

按 实战教程 执行,不要凭记忆。

8. 成本控制 ​

  • 按天计费,验证完立即释放;
  • 不用的组件先缩副本;
  • 大镜像只拉一次,节点间分发;
  • 测试数据控制在 1GB 内;
  • 需要保留时做快照,不长期养机器。

9. 重建验收 ​

  • 三节点 Ready;
  • 存储/PG/Kafka/Flink/Doris/DS 全部 Running;
  • 端到端 1M 通过;
  • SHS 能看到批任务;
  • 文档记录版本、镜像 tag、验证结果。

达不到就不要继续加组件,先修基础。