- 支持 Windows Agent 构建、安装脚本和统一上报协议 - 增强 RDP 剪贴板、虚拟盘和文件传输能力 - 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口 - 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
3.6 KiB
3.6 KiB
Kubernetes 管理设计说明
更新:2026-07-05 范围:K8s 集群接入、自研 HTTP 客户端、资源管理、Pod exec/logs/files、YAML 编辑、事件、容量、AI 排障。// Logan.Li
定位
Kubernetes 管理模块提供多集群资源管理和排障能力。AIOps 当前采用自研轻量 K8s HTTP 客户端,不引入 client-go,重点控制镜像体积和调用边界。
能力矩阵
| 能力 | 当前状态 | 说明 |
|---|---|---|
| 集群接入 | 已完成 | kubeconfig/API Server/TLS |
| 节点/Pod/Workload | 已完成 | 列表、详情、指标、事件 |
| Namespace 管理 | 已完成 | 命名空间资源视图 |
| YAML 查看/编辑 | 已完成 | CodeMirror、可视化编辑、导入 |
| Pod 日志 | 已完成 | 日志查看 |
| Pod exec | 已完成 | xterm + channel.k8s.io |
| Pod 文件 | 已完成 | 文件浏览、上传/下载 |
| kubectl 终端 | 已完成 | 集群级 kubectl shell |
| HPA/CronHPA | 已完成 | 工作负载扩缩容能力 |
| 集群对比/容量 | 已完成 | 多集群视图 |
| AI K8s 排障 | 已完成 | Agent CLI kubernetes 模式 |
主要代码落点
| 模块 | 后端 | 前端 |
|---|---|---|
| 集群管理 | k8s_cluster.go、kubernetes.go |
KubernetesClusters.tsx |
| 节点/Pod/Workload | k8s_node.go、k8s_pod.go、k8s_workload.go |
KubernetesNodes.tsx、WorkloadViewPage.tsx |
| Namespace | k8s_namespace.go |
NamespaceManagementPage.tsx |
| YAML | k8s_yaml.go、k8s_resource.go |
YamlViewer.tsx、ResourceVisualEditor.tsx |
| Pod exec/logs/files | k8s_pod.go、k8s_pod_files.go |
PodExecTerminal.tsx、PodLogsViewer.tsx、PodFileBrowser.tsx |
| kubectl | kubectl_shell.go |
KubectlTerminal.tsx |
| 事件 | k8s_events.go |
EventTable.tsx、EventsPage.tsx |
| AI K8s | agent_cli_kubernetes.go |
AgentCLI.tsx |
自研客户端边界
AIOps Backend
├── build K8s request
├── attach token/cert
├── optional InsecureSkipVerify / CA
├── call Kubernetes API
├── normalize response
└── return frontend DTO
原则:
- 普通资源查询走 HTTP JSON。
- Pod exec 使用
channel.k8s.ioWebSocket。 - 文件操作优先复用 exec/tar 或 API 能力。
- 不把 kubeconfig 明文返回前端。
Pod exec 通道
| Channel | 含义 |
|---|---|
| 0 | stdin |
| 1 | stdout |
| 2 | stderr |
| 3 | error/status |
| 4 | resize |
终端通用实现见 docs/terminal。
YAML 管理风险边界
高风险操作:
- delete pod/deployment/service/configmap/secret
- scale 到 0 或异常副本数
- rollout restart 生产工作负载
- 修改镜像、环境变量、挂载、权限上下文
建议接入:
- diff 预览。
- 风险提示。
- 生产 namespace 审批。
- 操作审计。
- 回滚建议。
AI K8s 排障
Agent CLI K8s 模式可用工具:
| 工具 | 用途 |
|---|---|
kubernetes_get |
查询资源 |
pod_logs |
查看日志 |
pod_execute |
容器内执行 |
kubernetes_action |
资源变更,高危确认 |
建议 Prompt 注入:
- 集群、namespace、Pod、container。
- Pod restart count。
- 最近事件。
- 所属 Deployment/StatefulSet。
- Service/Ingress 关系。
- HPA 状态。
验收清单
- 集群配置保存后能列出 namespace/node/pod。
- Pod 日志能实时查看并切换容器。
- Pod exec 能 resize,Ctrl+C 可用。
- YAML 编辑有 diff,失败时错误明确。
- kubectl 终端关闭后后端进程清理。
- 无权限用户不能访问未授权集群。
- AI K8s 高危操作触发确认或审批。