Files
aiops/docs/kubernetes/README.md
T
Logan.Li e0d652d211 feat: 完善堡垒机与 Agent 智能运维能力
- 支持 Windows Agent 构建、安装脚本和统一上报协议

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

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

- 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
2026-07-05 23:49:36 +08:00

132 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 高危操作触发确认或审批。