feat(k8s): M13 多集群资源对比看板 — GetMultiClusterComparison handler + ClusterComparePage (柱状图/雷达图/饼图/详细对比表)

This commit is contained in:
attacker committed 2026-06-24 05:03:47 +08:00
1 parent 7192f58b72
commit 3d7932c087
9 files changed
+591 -2

No files matched your search

+34 -1
View File
@@ -282,7 +282,40 @@
| 模块 | 描述 |
|------|------|
| M13 | 多集群资源对比看板 |
| M13 | 多集群资源对比看板 [done] |
### M13: 多集群资源对比看板 [done]
**目标**: 跨集群资源用量、节点分布、健康状态对比 — 全局视角的多集群运维看板
**后端改动**:
- `handlers/kubernetes.go`: 新增 `GetMultiClusterComparison` handler:
- 聚合所有集群的 DB 缓存数据(node_count/pod_count/deployment_count/service_count/cpu_usage/memory_usage)
- 从 `kubernetes_nodes` 表聚合节点级数据:CPU 核数总和、内存总量、master/worker 分布、健康/非健康节点数
- 集群级别 cpu_usage 为 0 时,用节点平均值回填
- 返回 `{clusters: [...], totals: {cluster_count, node_count, pod_count, ...}}`
- `routes.go`: 注册 `GET /kubernetes/compare`(全局路由,不属于特定集群)
**前端改动**:
- 新增 `ClusterComparePage.tsx` (~360行) — 多集群对比看板:
- 概览卡片:集群总数 / 节点总数 / Pod 总数 / Deployment 总数 / Service 总数
- 资源数量对比柱状图(节点/Pod/Deployment/Service — 4 维度并排)
- CPU/内存使用率对比柱状图(百分比)
- 资源雷达图(多集群 6 维度对比 — 仅 ≥2 集群时显示)
- 节点角色分布饼图(Master/Worker)
- 详细对比表格(可点击行跳转集群概览,含 CPU/内存使用率进度条)
- `api.ts`: 新增 `getMultiClusterComparison()` 方法
- `App.tsx`: 新增路由 `/kubernetes/compare`
- `Sidebar.tsx`: Kubernetes 菜单新增「多集群对比」入口(Layers 图标)
**验收标准**:
- [x] `GET /api/v1/kubernetes/compare` 返回 clusters 数组 + totals 聚合
- [x] totals 包含 cluster_count/node_count/pod_count/deployment_count/service_count
- [x] 每个集群包含 19 个字段(id/name/code/status/node_count/.../total_cpu_cores/total_memory_mb/master_count/worker_count)
- [x] 集群级别 cpu_usage 为 0 时用节点平均值回填
- [x] 前端 4 类图表正确渲染(柱状图×2 + 雷达图 + 饼图)
- [x] 详细对比表格可点击跳转集群概览
- [x] TypeScript 零编译错误 + Vite 构建成功
- [x] SPA 路由 `/kubernetes/compare` 返回 200(非 301/404)
---