Back to MCP directory
publicPublicdnsLocal runtime

k8s_ai_assistant_mcp

Kubernetes AI智能管理助手,结合MCP协议服务器和Rancher UI扩展,提供自然语言命令行操作和可视化集群管理界面

article

README

🚀 K8s AI Assistant MCP

本项目是一个全面的Kubernetes管理解决方案,它结合了MCP(模型上下文协议)服务器Rancher UI扩展,实现了由人工智能驱动的智能Kubernetes集群管理。

📋 目录

🎯 概述

本项目集成了两项强大的技术,打造了无缝的Kubernetes管理体验:

  1. 面向Kubernetes的MCP服务器 - 由人工智能驱动的Kubernetes操作命令接口
  2. 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 | 集群管理和资源操作 |

请求流程

  1. 用户通过Rancher UI扩展提交自然语言查询
  2. 后端API验证并将请求路由到AI模型
  3. Ollama AI分析意图并映射到Kubernetes操作
  4. MCP服务器通过JSON-RPC执行kubectl/Helm命令
  5. Kubernetes API返回集群数据和操作结果
  6. 响应链通过AI格式化处理数据
  7. 前端显示格式化结果(表格、日志、洞察)

关键特性

  • 自然语言处理:将用户查询转换为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

# Helm操作
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扩展界面

Rancher UI演示

展示Kubernetes管理功能的Rancher UI扩展界面

更多演示内容(即将推出)

📸 更多演示图片

展示K8s AI Assistant实际运行情况的其他截图和视频

计划的演示内容:

  • MCP服务器命令行界面
  • AI驱动的故障排除工作流程
  • 多集群管理界面
  • 实时监控和警报
  • Helm图表部署过程
  • 端口转发和服务访问
  • 自定义扩展开发

交互式演示

🔗 实时演示占位符

即将推出:用于亲身体验的交互式演示环境

🚀 安装

前提条件

  • Kubernetes集群(本地或远程)
  • Node.js 18+ 和 npm/bun
  • 配置了集群访问权限的kubectl
  • Rancher Manager(用于UI扩展)
  • Ollama服务器(用于AI模型)

快速开始

  1. 克隆仓库:
git clone https://github.com/Thanhdeptr/K8s_AI_Assistant_MCP.git
cd K8s_AI_Assistant_MCP
  1. 安装MCP服务器:
cd mcp-server-kubernetes
npm install
npm run build
  1. 安装Rancher UI扩展:
cd ../rancher-ui
npm install
  1. 配置Claude Desktop:
{
  "mcpServers": {
    "k8s-ai-assistant": {
      "command": "node",
      "args": ["/path/to/K8s_AI_Assistant_MCP/mcp-server-kubernetes/dist/index.js"]
    }
  }
}
  1. 部署Rancher扩展:
# 构建和打包扩展
npm run build
npm run package

# 部署到Rancher
helm install k8s-ai-extensions ./charts/

详细设置说明

有关详细的设置说明,包括如何运行MCP服务器和后端服务器,请参阅 SETUP.md

📖 使用方法

MCP服务器命令

# 获取默认命名空间中的所有Pod
kubectl_get pods

# 描述特定的部署
kubectl_describe deployment my-app

# 扩展部署
kubectl_scale deployment my-app --replicas=5

# 诊断Pod问题
k8s-diagnose my-app-pod

# 端口转发到服务
port_forward service/my-app-service 8080:80

Rancher UI扩展

  1. 访问Rancher Manager
  2. 导航到扩展
  3. 安装K8s AI Assistant扩展
  4. 访问自定义仪表盘和工具

🛠️ 开发

项目结构

K8s_AI_Assistant_MCP/
├── mcp-server-kubernetes/     # MCP服务器后端
│   ├── src/                   # 源代码
│   ├── tests/                 # 单元测试
│   └── dist/                  # 构建产物
├── rancher-ui/               # Rancher UI扩展
│   ├── pkg/                  # 扩展包
│   ├── charts/               # Helm图表
│   └── assets/               # 扩展资源
└── docs/                     # 文档

开发环境设置

  1. MCP服务器开发:
cd mcp-server-kubernetes
npm run dev          # 开发模式,支持热重载
npm run test         # 运行测试
npm run build        # 生产环境构建
  1. Rancher UI开发:
cd rancher-ui
npm run dev          # 开发服务器
npm run build        # 构建扩展
npm run package      # 打包部署

测试

# 运行所有测试
npm run test:all

# 仅测试MCP服务器
cd mcp-server-kubernetes && npm run test

# 仅测试UI扩展
cd rancher-ui && npm run test

📄 许可证

本项目采用MIT许可证 - 详情请参阅 LICENSE 文件。

🙏 致谢

本项目基于以下优秀的开源项目构建:

面向Kubernetes的MCP服务器

  • 原始仓库Flux159/mcp-server-kubernetes
  • 作者:Paras Patel 和 Suyog Sonwalkar
  • 许可证:MIT许可证
  • 描述:通过AI接口提供Kubernetes管理命令的MCP服务器

Rancher UI插件示例

  • 原始仓库rancher/ui-plugin-examples
  • 作者:Rancher Labs
  • 许可证:Apache 2.0
  • 描述:Rancher管理平台的示例UI扩展

主要贡献者

  • Flux159 - MCP服务器的开发和维护
  • Rancher Labs - UI扩展框架和示例
  • 开源社区 - 持续改进和反馈

⭐ 如果您觉得这个仓库有用,请给它点个星!

🔄 欢迎fork并贡献代码,让它变得更好!

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client