feat: 完善堡垒机与 Agent 智能运维能力
- 支持 Windows Agent 构建、安装脚本和统一上报协议 - 增强 RDP 剪贴板、虚拟盘和文件传输能力 - 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口 - 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
This commit is contained in:
1 parent
a9513c2056
commit
e0d652d211
169 files changed
+12192
-9116
No files matched your search
@@ -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 高危操作触发确认或审批。
|
||||
Reference in new issue
Block a user