feat: 完善堡垒机与 Agent 智能运维能力

- 支持 Windows Agent 构建、安装脚本和统一上报协议

- 增强 RDP 剪贴板、虚拟盘和文件传输能力

- 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口

- 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
This commit is contained in:
Logan.Li committed 2026-07-05 23:49:36 +08:00
1 parent a9513c2056
commit e0d652d211
169 files changed
+12192 -9116

No files matched your search

+131
View File
@@ -0,0 +1,131 @@
# 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` |
---
## 自研客户端边界
```text
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.io` WebSocket。
- 文件操作优先复用 exec/tar 或 API 能力。
- 不把 kubeconfig 明文返回前端。
---
## Pod exec 通道
| Channel | 含义 |
|---------|------|
| 0 | stdin |
| 1 | stdout |
| 2 | stderr |
| 3 | error/status |
| 4 | resize |
终端通用实现见 [docs/terminal](../terminal/implementation-spec.md)。
---
## YAML 管理风险边界
高风险操作:
- delete pod/deployment/service/configmap/secret
- scale 到 0 或异常副本数
- rollout restart 生产工作负载
- 修改镜像、环境变量、挂载、权限上下文
建议接入:
1. diff 预览。
2. 风险提示。
3. 生产 namespace 审批。
4. 操作审计。
5. 回滚建议。
---
## 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 状态。
---
## 验收清单
1. 集群配置保存后能列出 namespace/node/pod。
2. Pod 日志能实时查看并切换容器。
3. Pod exec 能 resize,Ctrl+C 可用。
4. YAML 编辑有 diff,失败时错误明确。
5. kubectl 终端关闭后后端进程清理。
6. 无权限用户不能访问未授权集群。
7. AI K8s 高危操作触发确认或审批。