Files
aiops/PROJECT_EVALUATION.md
T
attacker 87b7755094 feat(k8s): M10 Node 详情页 — PID/容器运行时/分配率
- 后端: GetNodeDetail handler — 获取单个节点完整信息
  * 系统信息: container_runtime/architecture/kubelet/os/kernel
  * 资源分配率: 遍历 Pod 计算 CPU/Memory/Pods requested vs allocatable
  * metrics-server 数据注入 (cpu_usage_m/mem_usage_mi)
  * 全量 conditions/taints/labels + 节点上的 Pod 列表
- 后端: K8s 客户端扩展
  * NodeTaint/NodeCondition 扩展字段 (reason/message)
  * NodeInfo 增加 architecture/operatingSystem
  * GetNode(name) 单节点查询方法
  * parseCpuToMilli()/parseMemToMi() 资源解析辅助函数
- 后端: 注册路由
  * GET /kubernetes/:clusterCode/nodes/:name (Kuboard code)
  * GET /kubernetes-clusters/:id/nodes/:name (ID)
- 前端: NodeDetailPage.tsx (~330行)
  * 系统信息卡片 + 资源分配率卡片(进度条)
  * 条件卡片 + 污点卡片 + 标签卡片 + Pod 列表
- 前端: 节点名称可点击跳转 (ClusterOverviewPage)
- 验证: API/SPA/TS/Vite 全部通过
2026-06-23 17:57:09 +08:00

5.4 KiB
Raw Blame History

K8s 管理功能评估基线

生成时间: 2026-06-21 | 评估人: Logan + AI

总体规模

层 规模
后端 kubernetes.go 2583 行 / 99 个函数 / 74 个路由
后端 kubernetesclient/client.go 1486 行
前端组件 22 个 .tsx / 7498 行

功能评估

✅ 已完成(90%)

功能 后端 前端 验证状态
集群 CRUD + 同步 ✅ ✅ ✅ 已验证
集群表单(名称即 code) ✅ ✅ NAME_RE 正则 ✅
节点列表 + 实时 metrics ✅ ListNodes 调 GetNodeMetrics ✅ ClusterOverviewPage ⚠️ 实时OK,DB缓存缺
Pod 列表 ✅ ✅ ✅
Deployment 列表/详情 ✅ ✅ DeploymentView + DeploymentWorkload ✅
Deployment view/edit 路由 ✅ ✅ /:mode/:kind/:name ✅
Deployment 伸缩/重启/镜像更新 ✅ scale/restart/update-image ✅ ✅
Deployment 历史版本/回滚 ✅ revisions/rollback ✅ ✅
Pod 日志(实时流) ✅ GetPodLogs ✅ PodLogsViewer fetch stream ✅
Pod 终端 exec ✅ ExecTerminal(WS) ✅ PodExecTerminal bash/sh/ash ✅
Pod 文件浏览 + 下载 + 上传 ✅ files/list + files/download + files/upload ✅ PodFileBrowser ✅
YAML 查看/编辑 ✅ GetYAML + UpdateYAML ✅ YamlViewer ✅
ReplicaSet 列表 ✅ ✅ ✅
Service/Ingress 列表 ✅ ✅ ✅
HPA 列表/创建/删除 ✅ ✅ ✅
ConfigMap/Secret 列表 ✅ ✅ ✅
ConfigMap/Secret 编辑 ✅ UpdateResourceYAMLNS ✅ YamlViewer(autoEdit) ✅ curl 验证
Events 列表 ✅ ListEvents ✅ EventsPage ✅
容量分析 ✅ GetCapacityAnalysis ✅ CapacityPage ✅
kubectl 终端 ✅ KubectlShell(WS) ✅ KubectlTerminal ✅
拓扑图 ✅ topology get/save ✅ TopologyView ✅
Node 详情页 ✅ GetNodeDetail (M10) ✅ NodeDetailPage ✅ curl 验证

❌ 缺失 / 进行中

功能 优先级 说明
Pod 文件上传 ✅ P2
ConfigMap/Secret 编辑 ✅ P2
Deployment 可视化编辑器 ✅ P1
YAML 编辑器增强 P1 ✅ 已完成 M6 — CodeMirror 6 语法高亮+行号+折叠+内联模式
CI/CD 集成菜单项 ✅ P3
Deployment 暂停更新 ✅ P3

📋 Deployment 编辑器现状评估 (2026-06-23)

组件 行数 状态 说明
DeploymentWorkload.tsx 680 ✅ 可用 Shell 框架(header + 三模式切换 + EditModeContainer Tab 系统)
DeploymentView.tsx 395 ✅ 完整 查看模式(状态卡片/容器模板/Pod实例/版本历史/RS)
DeploymentEditBasic.tsx 340 ✅ 完成 M6 基本信息 Tab — replicas/labels/annotations/selector 编辑
DeploymentEditContainers.tsx 700+ ✅ 完成 M7 完整容器编辑器(工作容器+初始化容器,10+ 字段编辑)
DeploymentEditStorage.tsx 437 ✅ 完成 M8 存储挂载 Tab — 6种 volume 类型编辑 + volumeMounts 汇总
DeploymentEditAdvanced.tsx 632 ✅ 完成 M8 高级设置 Tab — 更新策略/调度/容忍/DNS/主机别名/安全上下文
DeploymentEditService.tsx — ✅ 完成 M9 服务/应用路由 Tab — selector 关联 Service + 创建/删除
YamlViewer.tsx 220 ✅ 升级 M6 CodeMirror 6 YAML 语法高亮+行号+折叠,弹窗+内联双模式
DeploymentDetail.tsx 719 💀 遗留 旧版 tab 式详情页,仅 KubernetesWorkloads.tsx 引用,待清理
后端 GetYAML/UpdateYAML — ✅ 完善 支持 12 种资源,PUT 直通 K8s API,纯前端工程无需改后端

编辑器 5 Tab 模块拆分:

Tab 模块 预估代码量 核心字段
基本信息 M6 ✅ ~340 行 name/namespace/labels/annotations/replicas
容器信息 M7 ✅ ~700 行 镜像/资源/端口/环境变量/健康检查/生命周期/安全上下文/卷挂载/初始化容器
存储挂载 M8 ✅ ~437 行 6种数据卷(EmptyDir/HostPath/ConfigMap/Secret/PVC/NFS) + volumeMounts汇总
高级设置 M8 ✅ ~632 行 更新策略/调度/nodeSelector/tolerations/DNS/主机别名/SA/安全上下文/hostNetwork
服务/应用路由 M9 ✅ — Service(ClusterIP/NodePort/LB) selector关联 + Ingress
YAML 编辑器 M6 ✅ ~220 行 CodeMirror 6 语法高亮+行号+折叠
合计 M6-M9 ✅ 全部完成 ~2700 行 纯前端,零后端改动

⚠️ 已知架构约束

  1. K8s 集群(161/162)是 CentOS 7 — MySQL 8.0 容器跑不了(x86-64-v2),用 hostNetwork + 外部 MySQL
  2. metrics-server 已安装 — kubectl top nodes 正常返回
  3. 自研 K8s 客户端 — 不用 client-go,保持轻量 net/http 方案
  4. 两个数据路径:ListNodes 实时调 API(含 metrics),SyncCluster 写 DB(缺 metrics)→ 前端不同页面读不同路径
  5. Node 详情页 (M10 ✅) — GetNodeDetail handler 返回完整节点信息:container_runtime/architecture/taints/conditions/资源分配率/Pod列表,前端 NodeDetailPage.tsx 可视化展示