Kubernetes AI Dashboard

K8s 集群管理 + AI 智能助手平台

Java Spring Boot Vue Kubernetes License

🇨🇳 简体中文 | 🇺🇸 English

## 目录 - [简介](#简介) - [功能特性](#功能特性) - [技术栈](#技术栈) - [项目结构](#项目结构) - [快速开始](#快速开始) - [配置](#配置) - [API 参考](#api-参考) - [部署](#部署) - [贡献](#贡献) - [许可证](#许可证) ## 简介 Kubernetes AI Dashboard 是一个面向**运维人员**的 Kubernetes 管理平台,集成 AI 智能助手与 MCP 工具链。基于 Fabric8 Kubernetes Client 管理集群全量资源,通过 Spring AI 提供工具调用与智能对话,并内置 A2A(Agent-to-Agent)协议框架。 > [!NOTE] > 本平台面向运维场景,提供 K8s 集群资源的统一管理界面与 AI 辅助运维能力。 ## 功能特性 - ☸️ **K8s 全量资源管理**:Namespace / Pod / Deployment / Service / Ingress / PVC / ConfigMap / Secret / Event / Job / CRD 的增删改查 - 📊 **集群监控**:节点状态与资源使用统计 - 🔒 **资源归属追踪**:平台创建的资源按用户归属记录,用户只能删除自己创建的资源 - 🤖 **AI 智能对话**:Spring AI 集成,支持工具调用与流式响应,上下文记忆 - 🔌 **MCP 工具链**:内置 7 个 MCP 工具服务(K8s / 系统信息 / 命令行 / 文件 / SSH / OSS / Docker 注册表) - 🤝 **A2A 协议框架**:Agent-to-Agent JSON-RPC 2.0 端点,预留扩展点 - 💾 **对象存储**:MinIO 集成,自动创建 Bucket - 🔐 **认证授权**:Sa-Token,32 字符随机 Token,Redis 会话 ## 技术栈 | 类别 | 技术 | 版本 | |------|------|------| | 语言 | Java | 21 | | 框架 | Spring Boot | 3.5.8 | | AI 框架 | Spring AI | 1.1.4 | | K8s 客户端 | Fabric8 Kubernetes Client | 6.9.2 | | ORM | MyBatis Plus | 3.5.14 | | 认证 | Sa-Token | 1.44.0 | | 对象存储 | MinIO | 8.6.0 | | 数据库 | MySQL | 8.0+ | | 缓存 | Redis | 7.0+ | | 前端框架 | Vue | 3.5 | | 前端构建 | Vite | 8 | | UI 组件 | Element Plus | 2.13 | ## 项目结构 ```mermaid graph TD A[kubernetes-ai-dashboard] --> B[dashboard 后端应用] A --> C[dashboard-fe 前端] A --> D[common 公共模块] A --> E[ai-base AI 基础] A --> F[oss 对象存储] A --> G[user 用户认证] A --> H[search 全文检索] A --> I[message 站内消息] ``` ``` kubernetes-ai-dashboard/ ├── dashboard/ # 后端主应用(cc.shiyi.dashboard) ├── dashboard-fe/ # 前端应用(Vue 3) ├── common/ # 公共模块(AOP 注解、工具类) ├── ai-base/ # AI 基础(ChatClient 池、聊天记忆) ├── oss/ # 对象存储(MinIO) ├── user/ # 用户认证(Sa-Token) ├── search/ # 全文检索(Lucene) ├── message/ # 站内消息 └── pom.xml ``` ## 快速开始 ### 环境要求 - JDK 21+ - Maven 3.9+ - Node.js 18+ - Docker & Docker Compose - Kubernetes 集群 v1.24+ ### 启动依赖服务 ```bash cd docker docker-compose up -d mysql redis minio ``` ### 后端编译运行 ```bash mvn clean install -DskipTests cd dashboard mvn spring-boot:run ``` 后端启动于 http://localhost:8080 ### 前端开发 ```bash cd dashboard-fe npm install npm run dev ``` 前端启动于 http://localhost:3000 ## 配置 配置文件 `dashboard/src/main/resources/application.yml`,所有值支持 `${ENV_VAR:default}` 环境变量覆盖。 | 环境变量 | 说明 | 默认值 | |----------|------|--------| | `SPRING_DATASOURCE_URL` | MySQL JDBC 地址 | jdbc:mysql://localhost:3306/mpi_dashboard | | `SPRING_DATA_REDIS_HOST` | Redis 地址 | localhost | | `MINIO_ENDPOINT` | MinIO 地址 | http://localhost:9000 | | `SPRING_AI_OPENAI_BASE_URL` | AI API 地址 | https://api.deepseek.com | | `SPRING_AI_OPENAI_API_KEY` | AI API Key | `` | | `KUBERNETES_CLIENT_CONFIG_URL` | kubeconfig 下载 URL | - | | `KUBERNETES_CLIENT_CONFIG_PATH` | kubeconfig 本地路径 | - | | `KUBERNETES_CLIENT_TRUST_CERTS` | 信任 K8s API 证书 | true | | `A2A_API_KEY` | A2A 协议 API Key | `` | > [!IMPORTANT] > Kubernetes 客户端必须显式配置 kubeconfig(`KUBERNETES_CLIENT_CONFIG_URL` 或 `KUBERNETES_CLIENT_CONFIG_PATH`),否则启动失败。不支持集群内 ServiceAccount 自动检测。 ## API 参考 ### 内部管理 API(`/api/v1/*`,需 Sa-Token 登录) | 方法 | 路径 | 说明 | |------|------|------| | POST | `/api/v1/ai/chat` | AI 对话(流式/非流式) | | GET/POST/PUT/DELETE | `/api/v1/k8s/*` | K8s 资源管理 | | GET | `/api/v1/k8s/cluster/stats` | 集群统计 | | GET | `/api/v1/resources/ownership` | 资源归属查询 | | POST/GET | `/api/v1/user/*` | 用户管理 | ### A2A 协议(`/a2a`,API Key 认证) | 方法 | 路径 | 说明 | |------|------|------| | GET | `/a2a/card` | 获取 AgentCard | | GET | `/.well-known/agent-card.json` | 标准发现端点 | | POST | `/a2a` | JSON-RPC 2.0(message/send、tasks/get、tasks/cancel) |
MCP 工具列表(7 个) | 工具服务 | 能力 | |----------|------| | KubernetesMcpService | 命名空间/Pod/Deployment 等资源操作、集群统计 | | SystemInfoMcpService | CPU/内存/磁盘/运行时间 | | CommandLineMcpService | 命令执行(危险命令黑名单) | | FileMcpService | 文件读写(沙箱限制) | | SshMcpService | 远程 SSH 命令 | | OssMcpService | MinIO 上传/列表 | | DockerRegistryMcpService | Docker 镜像仓库查询 |
## 部署 Docker 部署详见 [DOCKER_README.md](DOCKER_README.md)。 ```bash # 构建后端镜像 docker build -f dashboard/Dockerfile -t /mpi-dashboard-backend:latest . # 构建前端镜像 docker build -f dashboard-fe/Dockerfile -t /mpi-dashboard-frontend:latest ./dashboard-fe ``` ## 贡献 - [ ] 完善集群监控告警 - [ ] 增加更多 K8s 资源类型支持 欢迎提 Issue 与 Pull Request。 ## 许可证 本项目采用**内部许可证**(Internal License),未公开开源。