后端: - SyncCluster 中调 GetNodeMetrics() 获取 metrics-server 数据 - 节点 INSERT 增加 cpu_usage/memory_usage 百分比字段 - 新增 parseCpuNanoToMilli / parseMemKiToMi 辅助函数 - 采集 Pod metrics(为 M2 准备) 前端: - KubernetesClusterDetail 删除硬编码 resourceData mock - 改为从节点 metrics 实时计算集群 CPU/内存使用率 - 图表 Y 轴固定 0-100 域,底部显示百分比数值 新增文档: - ROADMAP.md / TDD_PLAN.md / PROJECT_EVALUATION.md
102 lines
3.1 KiB
Markdown
102 lines
3.1 KiB
Markdown
# K8s 管理功能演进路线图
|
||
|
||
> 每个模块 = 1 个 cron 周期(6h)可完成的**中等粒度功能**。完成后更新状态。
|
||
|
||
## 当前冲刺:P0 — Metrics 数据贯通
|
||
|
||
### M1: SyncCluster 增加 metrics 采集 [in_progress]
|
||
**目标**: 同步时采集 node/pod metrics,写入 DB 的 cpu_usage/memory_usage 字段
|
||
|
||
**后端改动**:
|
||
- `SyncCluster` handler 中,`client.ListNodes()` 之后调 `client.GetNodeMetrics()`
|
||
- 将 CPU(nanocores→m) / Memory(Ki→Mi) 换算后写入 `kubernetes_nodes.cpu_usage` / `memory_usage`(百分比)
|
||
- 同理调 `client.GetPodMetrics()` 写入 Pod 的资源使用
|
||
|
||
**前端改动**:
|
||
- `KubernetesClusterDetail.tsx`: 删除 `resourceData` 硬编码,改为从 API 获取真实数据(或展示当前 metrics 快照)
|
||
- 资源分布卡片读取 cluster 实际计数(node_count/pod_count 已有)
|
||
|
||
**验收标准**:
|
||
- [ ] SyncCluster 后 DB `kubernetes_nodes` 表 cpu_usage/memory_usage 非零
|
||
- [ ] 节点列表页 CPU/内存百分比非零
|
||
- [ ] 集群详情页无硬编码 mock 数据
|
||
- [ ] curl `/kubernetes-clusters/:id` 返回的 node_count/pod_count 正确
|
||
|
||
---
|
||
|
||
### M2: Pod Metrics 详情页接入 [pending]
|
||
**目标**: Deployment 详情页和 Pod 列表展示真实 CPU/内存使用
|
||
|
||
**改动**:
|
||
- 后端 `ListPods` handler 注入 `GetPodMetrics()`(类似 ListNodes 已有逻辑)
|
||
- 前端 Pod 列表表格增加 CPU/内存列
|
||
- DeploymentView 容器详情区域读取 metrics
|
||
|
||
**验收标准**:
|
||
- [ ] Pod 列表有 CPU/内存使用量列
|
||
- [ ] Deployment 详情页容器 CPU/内存非 mock
|
||
|
||
---
|
||
|
||
### M3: Pod 文件上传 [pending]
|
||
**目标**: PodFileBrowser 增加上传能力
|
||
|
||
**改动**:
|
||
- 后端新增 `POST .../pods/:pod/files/upload` — 用 exec tar 解包写入
|
||
- 前端 PodFileBrowser 增加上传按钮 + 拖拽上传
|
||
|
||
**验收标准**:
|
||
- [ ] 可上传文件到 Pod 容器内
|
||
- [ ] 上传后文件列表刷新可见
|
||
|
||
---
|
||
|
||
### M4: ConfigMap/Secret 编辑 [pending]
|
||
**目标**: 目前只读,增加在线编辑能力
|
||
|
||
**改动**:
|
||
- 复用已有 `UpdateResourceYAMLNS` 端点
|
||
- 前端 ConfigMap/Secret 列表增加编辑弹窗(YAML 编辑器)
|
||
|
||
**验收标准**:
|
||
- [ ] 可在线编辑 ConfigMap 并保存
|
||
- [ ] 保存后 K8s 中实际生效
|
||
|
||
---
|
||
|
||
### M5: Deployment 暂停更新 + CI/CD 集成 [pending]
|
||
**目标**: 接通顶部菜单的暂停更新和 CI/CD 按钮
|
||
|
||
**改动**:
|
||
- 后端 `POST .../deployments/:name/pause` 和 `/resume`
|
||
- CI/CD 按钮跳转到已有 Pipeline 页面(传递 namespace+deployment 上下文)
|
||
|
||
**验收标准**:
|
||
- [ ] 可暂停/恢复 Deployment 滚动更新
|
||
- [ ] CI/CD 按钮可跳转到流水线页面
|
||
|
||
---
|
||
|
||
## 后续规划(P2+)
|
||
|
||
| 模块 | 描述 |
|
||
|------|------|
|
||
| M6 | Node 详情页(PID/容器运行时/分配率) |
|
||
| M7 | Service/Ingress 在线编辑 |
|
||
| M8 | StatefulSet/DaemonSet 详情页(对标 Deployment) |
|
||
| M9 | 事件聚合 + 告警联动 |
|
||
| M10 | 多集群资源对比看板 |
|
||
|
||
---
|
||
|
||
## 状态标记规则
|
||
|
||
```
|
||
pending → in_progress → done / blocked
|
||
```
|
||
|
||
每个模块完成后:
|
||
1. 更新本文件状态
|
||
2. 更新 PROJECT_EVALUATION.md 对应行
|
||
3. git commit message 格式: `feat(k8s): M1 SyncCluster metrics 采集`
|