🚀 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並貢獻代碼,讓它變得更好!