- YamlViewer 增加 autoEdit prop,打开即进入编辑模式 - NamespaceResourcePage ConfigMap/Secret 行增加编辑按钮(铅笔图标) - 统一 cleanBeforeEdit=true,编辑前自动清理 status/managedFields/uid - 端到端验证: GET YAML → PUT 更新 → curl 确认 K8s label 生效 - 更新 ROADMAP/PROJECT_EVALUATION
3.7 KiB
3.7 KiB
K8s 管理功能演进路线图
每个模块 = 1 个 cron 周期(6h)可完成的中等粒度功能。完成后更新状态。
当前冲刺:P0 — Metrics 数据贯通
M1: SyncCluster 增加 metrics 采集 [done]
目标: 同步时采集 node/pod metrics,写入 DB 的 cpu_usage/memory_usage 字段
后端改动:
SyncClusterhandler 中,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 详情页接入 [done]
目标: Deployment 详情页和 Pod 列表展示真实 CPU/内存使用
改动:
- 后端
ListPodshandler 注入GetPodMetrics()(类似 ListNodes 已有逻辑) - 前端 Pod 列表表格增加 CPU/内存列
- DeploymentView 容器详情区域读取 metrics
验收标准:
- Pod 列表有 CPU/内存使用量列
- Deployment 详情页容器 CPU/内存非 mock
M3: Pod 文件上传 [done]
目标: PodFileBrowser 增加上传能力
改动:
- 后端新增
POST .../pods/:pod/files/upload— multipart 表单接收,base64 分块 exec 写入 - 前端 PodFileBrowser 增加上传按钮 + FormData 上传
- 重大修复:
ExecInPod从 raw HTTP SPDY(不工作)改为 WebSocket channel.k8s.io 协议(和 ExecTerminal 一致) - 修复: BusyBox
ls不支持--time-style,解析器改为兼容 BusyBox 默认日期格式
验收标准:
- 可上传文件到 Pod 容器内
- 上传后文件列表刷新可见
- verify 字段返回正确文件大小
M4: ConfigMap/Secret 编辑 [done]
目标: 目前只读,增加在线编辑能力
改动:
- 后端
UpdateResourceYAMLNS端点已支持 configmaps/secrets(无需改动) - 前端
YamlViewer增加autoEditprop — 打开即进入编辑模式 NamespaceResourcePageConfigMap/Secret 行增加显式编辑按钮(铅笔图标)- 统一
cleanBeforeEdit=true— 编辑前自动清理 status/managedFields/uid 等只读字段 k8s-yaml-utils.ts的cleanYAML()提供行级清理
验收标准:
- 可在线编辑 ConfigMap 并保存
- 保存后 K8s 中实际生效(curl 验证 label 增删 → GET 确认)
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
每个模块完成后:
- 更新本文件状态
- 更新 PROJECT_EVALUATION.md 对应行
- git commit message 格式:
feat(k8s): M1 SyncCluster metrics 采集