Files
aiops/PROJECT_EVALUATION.md
T
attacker a8b4af4409 feat(k8s): M7 容器信息Tab — 完整容器编辑器(工作容器+初始化容器)
- 新增 DeploymentEditContainers.tsx (~700行): Kuboard 风格容器编辑器
  - 工作容器 + 初始化容器分组管理(增/删/复制)
  - 完整字段编辑: 镜像/拉取策略/命令/参数/工作目录
  - 环境变量/端口(TCP/UDP/SCTP)/资源requests-limits
  - 健康检查: liveness/readiness/startup三种探针
    httpGet/tcpSocket/exec 三种检测方式可切换
  - 生命周期回调: postStart/preStop (exec/httpGet/tcpSocket)
  - 安全上下文: runAsUser/runAsGroup/privileged/capabilities等
  - 卷挂载: name/mountPath/subPath/readOnly
  - Pod级镜像拉取凭证(imagePullSecrets)编辑
- DeploymentWorkload.tsx: 容器Tab从旧DeploymentEdit替换为DeploymentEditContainers
- 纯前端工程, 后端GetYAML/UpdateYAML已完善
- 验证: tsc零错误 + vite build成功 + SPA路由200 + YAML PUT保存200

Closes M7
2026-06-22 23:29:30 +00:00

4.6 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 ✅

❌ 缺失 / 进行中

功能 优先级 说明
Pod 文件上传 ✅ P2
ConfigMap/Secret 编辑 ✅ P2
Deployment 可视化编辑器 P1 M6-M7已完成(三模式+基本信息Tab+YAML编辑器+容器编辑器),M8-M9 进行中
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+ 字段编辑)
YamlViewer.tsx 220 ✅ 升级 M6 CodeMirror 6 YAML 语法高亮+行号+折叠,弹窗+内联双模式
DeploymentDetail.tsx 719 💀 遗留 旧版 tab 式详情页,仅 KubernetesWorkloads.tsx 引用,待清理
后端 GetYAML/UpdateYAML — ✅ 完善 支持 12 种资源,PUT 直通 K8s API,纯前端工程无需改后端

编辑器 5 Tab 模块拆分:

Tab 模块 预估代码量 核心字段
基本信息 M6 ~200 行 name/namespace/labels/annotations/replicas
容器信息 M7 ✅ ~700 行 镜像/资源/端口/环境变量/健康检查/生命周期/安全上下文/卷挂载/初始化容器
存储挂载 M8 ~500 行 6种数据卷(PVC/EmptyDir/HostPath/NFS/ConfigMap/Secret) + 挂载映射
高级设置 M8 ~600 行 更新策略/调度/容忍/亲和/DNS/主机别名/SA/安全上下文
服务/应用路由 M9 ~400 行 Service(ClusterIP/NodePort/LB) + Ingress 规则
YAML 编辑器 M6 ~200 行 Monaco Editor 集成
合计 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)→ 前端不同页面读不同路径