🚀 K8s AI Assistant MCP
本项目是一个全面的Kubernetes管理解决方案,它结合了MCP(模型上下文协议)服务器和Rancher UI扩展,实现了由人工智能驱动的智能Kubernetes集群管理。
📋 目录
- 概述
- 架构
- 组件
- 特性
- 演示
- 安装
- 使用方法
- 开发
- 许可证
- 致谢
🎯 概述
本项目集成了两项强大的技术,打造了无缝的Kubernetes管理体验:
- 面向Kubernetes的MCP服务器 - 由人工智能驱动的Kubernetes操作命令接口
- Rancher UI扩展 - Rancher管理平台的可视化界面扩展
两者结合,通过统一的界面提供了命令行AI辅助和可视化管理功能。
🔄 系统工作流程
架构概述
K8s AI Assistant采用多层架构,通过AI分析处理自然语言查询,并通过MCP协议执行Kubernetes操作。
graph LR
A[用户输入] --> B[Rancher UI]
B --> C[后端API]
C --> D[Ollama AI]
D --> E[MCP服务器]
E --> F[Kubernetes]
F --> E
E --> D
D --> C
C --> B
B --> A
style A fill:#e1f5fe
style B fill:#fff3e0
style C fill:#f3e5f5
style D fill:#e8f5e8
style E fill:#fff8e1
style F fill:#fce4ec
核心组件
| 组件 |
技术 |
协议 |
端口 |
用途 |
| 前端 |
Vue.js + Rancher Shell |
HTTP/HTTPS |
8005 |
用户界面和聊天体验 |
| 后端API |
Express.js |
HTTP |
8055 |
请求路由和响应格式化 |
| AI模型 |
Ollama (gpt-oss:20b) |
兼容OpenAI的API |
11434 |
自然语言处理和意图映射 |
| MCP服务器 |
Node.js + TypeScript |
JSON-RPC + SSE |
3000 |
Kubernetes命令执行 |
| Kubernetes |
kubectl + Helm |
Kubernetes API |
6443 |
集群管理和资源操作 |
请求流程
- 用户通过Rancher UI扩展提交自然语言查询
- 后端API验证并将请求路由到AI模型
- Ollama AI分析意图并映射到Kubernetes操作
- MCP服务器通过JSON-RPC执行kubectl/Helm命令
- Kubernetes API返回集群数据和操作结果
- 响应链通过AI格式化处理数据
- 前端显示格式化结果(表格、日志、洞察)
关键特性
- 自然语言处理:将用户查询转换为Kubernetes命令
- 实时执行:实时检索集群数据并执行操作
- 智能格式化:由AI驱动的响应格式化和洞察
- 安全操作:符合RBAC的集群访问和审计日志记录
- 可扩展架构:模块化设计,便于添加功能
🏗️ 架构
┌─────────────────────────────────────────────────────────────┐
│ K8s AI Assistant MCP │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────┐ ┌─────────────────────────────────┐ │
│ │ MCP Server │ │ Rancher UI Extensions │ │
│ │ (Backend) │ │ (Frontend) │ │
│ │ │ │ │ │
│ │ • kubectl ops │ │ • Visual dashboards │ │
│ │ • Helm support │ │ • Resource management UI │ │
│ │ • AI diagnosis │ │ • Real-time monitoring │ │
│ │ • Port forward │ │ • Custom extensions │ │
│ └─────────────────┘ └─────────────────────────────────┘ │
│ │ │ │
│ └───────────┬───────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Kubernetes Cluster │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ │
│ │ │ Pods │ │ Services │ │ Deployments │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
🔧 组件
1. 面向Kubernetes的MCP服务器 (mcp-server-kubernetes/)
派生自:Flux159/mcp-server-kubernetes
MCP服务器通过自然语言命令和自动化操作提供由人工智能驱动的Kubernetes管理。
关键特性:
- 统一的kubectl API - 支持完整的kubectl命令
- AI驱动的诊断 - 使用
k8s-diagnose进行自动故障排除
- Helm操作 - 图表管理和部署
- 端口转发 - 安全访问集群服务
- 非破坏性模式 - 安全的只读操作
- 密钥掩码 - 注重安全的数据处理
可用命令:
kubectl_get, kubectl_describe, kubectl_create, kubectl_apply
kubectl_delete, kubectl_scale, kubectl_patch, kubectl_rollout
kubectl_logs, port_forward, k8s-diagnose
install_helm_chart, upgrade_helm_chart, uninstall_helm_chart
kubectl_context, list_api_resources, explain_resource
2. Rancher UI扩展 (rancher-ui/)
派生自:rancher/ui-plugin-examples
Rancher UI扩展通过Rancher平台为Kubernetes资源提供可视化管理界面。
关键特性:
- 可视化仪表盘 - 实时集群监控
- 资源管理界面 - 直观的资源操作
- 自定义扩展 - 可扩展的插件架构
- 多集群支持 - 管理多个集群
- 基于角色的访问 - 安全的访问控制
扩展类型:
- 时钟扩展 - 实时显示集群时间
- 主页扩展 - 自定义仪表盘视图
- CRD扩展 - 自定义资源定义
- 节点驱动扩展 - 云提供商集成
- 顶级产品扩展 - 完整的产品集成
✨ 特性
人工智能驱动的管理
- 自然语言Kubernetes命令
- 自动故障排除和诊断
- 智能资源推荐
- 预测性扩展和优化
可视化界面
- 实时集群监控仪表盘
- 拖放式资源管理
- 可视化的Pod和服务拓扑
- 交互式日志查看
安全与合规
- 基于角色的访问控制(RBAC)
- 密钥管理和掩码
- 审计日志记录和合规报告
- 安全的端口转发
多集群支持
- 跨多个集群的统一管理
- 跨集群资源监控
- 集中式配置管理
- 集群健康评分
🎬 演示
演示截图
Rancher UI扩展界面
展示Kubernetes管理功能的Rancher UI扩展界面
更多演示内容(即将推出)
📸 更多演示图片
展示K8s AI Assistant实际运行情况的其他截图和视频
计划的演示内容:
- MCP服务器命令行界面
- AI驱动的故障排除工作流程
- 多集群管理界面
- 实时监控和警报
- Helm图表部署过程
- 端口转发和服务访问
- 自定义扩展开发
交互式演示
🔗 实时演示占位符
即将推出:用于亲身体验的交互式演示环境
🚀 安装
前提条件
- Kubernetes集群(本地或远程)
- Node.js 18+ 和 npm/bun
- 配置了集群访问权限的kubectl
- Rancher Manager(用于UI扩展)
- Ollama服务器(用于AI模型)
快速开始
- 克隆仓库:
git clone https://github.com/Thanhdeptr/K8s_AI_Assistant_MCP.git
cd K8s_AI_Assistant_MCP
- 安装MCP服务器:
cd mcp-server-kubernetes
npm install
npm run build
- 安装Rancher UI扩展:
cd ../rancher-ui
npm install
- 配置Claude Desktop:
{
"mcpServers": {
"k8s-ai-assistant": {
"command": "node",
"args": ["/path/to/K8s_AI_Assistant_MCP/mcp-server-kubernetes/dist/index.js"]
}
}
}
- 部署Rancher扩展:
npm run build
npm run package
helm install k8s-ai-extensions ./charts/
详细设置说明
有关详细的设置说明,包括如何运行MCP服务器和后端服务器,请参阅 SETUP.md。
📖 使用方法
MCP服务器命令
kubectl_get pods
kubectl_describe deployment my-app
kubectl_scale deployment my-app --replicas=5
k8s-diagnose my-app-pod
port_forward service/my-app-service 8080:80
Rancher UI扩展
- 访问Rancher Manager
- 导航到扩展
- 安装K8s AI Assistant扩展
- 访问自定义仪表盘和工具
🛠️ 开发
项目结构
K8s_AI_Assistant_MCP/
├── mcp-server-kubernetes/ # MCP服务器后端
│ ├── src/ # 源代码
│ ├── tests/ # 单元测试
│ └── dist/ # 构建产物
├── rancher-ui/ # Rancher UI扩展
│ ├── pkg/ # 扩展包
│ ├── charts/ # Helm图表
│ └── assets/ # 扩展资源
└── docs/ # 文档
开发环境设置
- MCP服务器开发:
cd mcp-server-kubernetes
npm run dev
npm run test
npm run build
- Rancher UI开发:
cd rancher-ui
npm run dev
npm run build
npm run package
测试
npm run test:all
cd mcp-server-kubernetes && npm run test
cd rancher-ui && npm run test
📄 许可证
本项目采用MIT许可证 - 详情请参阅 LICENSE 文件。
🙏 致谢
本项目基于以下优秀的开源项目构建:
面向Kubernetes的MCP服务器
Rancher UI插件示例
主要贡献者
- Flux159 - MCP服务器的开发和维护
- Rancher Labs - UI扩展框架和示例
- 开源社区 - 持续改进和反馈
⭐ 如果您觉得这个仓库有用,请给它点个星!
🔄 欢迎fork并贡献代码,让它变得更好!