Cover image
Try Now
2025-04-14

3 years

Works with Finder

8

Github Watches

3

Github Forks

8

Github Stars

🚀 MCP-DevOps Kubernetes 管理系统

CII Best Practices Go Report Card GitHub release (latest SemVer) License PRs Welcome Made with Go

智能化的 Kubernetes 资源管理与故障诊断系统

系统架构功能特性环境要求快速开始使用示例安全注意事项


MCP-DevOps 是一个基于 Go 语言开发的 Kubernetes 资源管理系统,它提供了简单易用的命令行界面来管理 Kubernetes 集群资源。该系统使用客户端-服务器架构,通过语义化交互提供直观的操作方式。

🏗️ 系统架构

系统由两部分组成:

  1. Server ⚙️:运行在有权限访问 Kubernetes 集群的环境中,提供 Kubernetes 资源操作的 API 接口
  2. Client 🖥️:命令行交互客户端,连接到服务器并提供自然语言交互界面
查看架构图
┌─────────────┐       ┌─────────────┐       ┌─────────────┐
│             │       │             │       │             │
│   Client    │◄─────►│   Server    │◄─────►│ Kubernetes  │
│  (AI 交互)   │       │ (API 服务)  │       │   集群      │
│             │       │             │       │             │
└─────────────┘       └─────────────┘       └─────────────┘

🌟 功能特性

🔄 Kubernetes 资源管理

🔍 Pod 管理:列出、描述、删除 Pod,查看 Pod 日志
🚀 Deployment 管理:列出、描述、扩缩容、重启 Deployment
📊 StatefulSet 管理:列出、描述、扩缩容、重启 StatefulSet
🔌 Service 管理:列出、描述、修改 Service
🏷️ Namespace 管理:列出、描述、创建、删除 Namespace
🌐 Ingress 管理:列出、描述、创建、更新、删除 Ingress
⚙️ ConfigMap 管理:列出、描述、创建、更新、删除 ConfigMap
🔒 Secret 管理:列出、描述、创建、更新、删除 Secret

🚨 故障诊断与告警处理

  • 🏥 集群健康检查:获取集群整体健康状态,包括节点、Pod 和命名空间状态
  • 🔍 Pod 诊断:深入分析 Pod 问题,检查容器状态、事件和日志,提供解决建议
  • 📊 节点诊断:检查节点状态、资源使用情况和运行的 Pod,识别潜在问题
  • 🚀 Deployment 诊断:分析 Deployment 部署和更新问题,检查副本状态和事件
  • ⚠️ 告警分析:处理和分析 Prometheus/Alertmanager 告警,提供根本原因分析和解决方案
  • 📱 企业微信通知:支持发送文本、Markdown 和卡片类型的企业微信消息,用于告警通知和状态报告
  • 🔔 Alertmanager Webhook 集成:客户端内置 Webhook 监听器(默认端口 9094),可接收 Alertmanager 告警,交由 AI 分析并通过企业微信发送通知

🐧 Linux 系统排查

  • 💻 系统信息:获取主机基本信息,包括操作系统、内核版本、资源使用情况等
  • ⚙️ 进程管理:查看和分析进程状态,识别高 CPU 或内存使用的进程
  • 📈 资源监控:监控 CPU、内存和磁盘使用情况,识别资源瓶颈
  • 🌐 网络诊断:检查网络连接、接口状态和路由配置,排查网络问题
  • 📝 日志分析:分析系统日志文件,查找错误和警告信息
  • 🔄 服务状态:检查系统服务运行状态,管理服务启停

⚙️ Kubernetes 组件排查

  • 🔄 Kubelet 状态:检查 Kubelet 服务状态和日志,排查节点问题
  • 🐳 容器运行时:检查 Docker、Containerd 或 CRI-O 状态,排查容器问题
  • 🔌 Kube-Proxy:检查 Kube-Proxy 状态和配置,排查服务网络问题
  • 🌐 CNI 状态:检查网络插件状态和配置,排查 Pod 网络问题
  • 📝 组件日志:分析 Kubernetes 组件日志,查找错误和警告信息
  • 🔍 容器检查:检查容器详情和日志,深入排查应用问题

🔑 Redis 工具

  • 📊 Redis 信息:获取 Redis 服务器运行时信息
  • ⏱️ 慢查询分析:分析 Redis 慢查询日志
  • 🔍 大键查找:查找 Redis 中的大键(超过 1MB)
  • 🔥 热键查找:查找 Redis 中的热键
  • 👀 命令监控:实时查看 Redis 执行的命令流(高负载,慎用)
  • 📉 延迟测量:测量 Redis 的延迟
  • 📈 延迟历史:测量 Redis 延迟并获取历史数据
  • 📊 统计信息:实时查看 Redis 简洁统计信息

🤖 交互与用户体验

  • 💬 自然语言交互:通过自然语言描述你想执行的操作
  • 🇨🇳 中文支持:系统默认使用中文进行交互
  • 🧠 智能故障分析:AI 自动分析故障模式并提供解决方案
  • 🚨 告警智能处理:自动分析告警信息,执行诊断步骤,提供详细报告

🛠️ 环境要求

🔧 Go 1.23.0 或更高版本
📄 Kubernetes 集群的访问配置(kubeconfig 文件)
🔑 OpenAI API 或兼容的大语言模型 API

🚀 快速开始

💼 环境配置
  1. 克隆仓库并进入项目目录

    git clone https://github.com/yourusername/mcp-devops.git
    cd mcp-devops
    
  2. 配置 .env 文件(项目根目录已提供示例):

    # 服务器配置
    MCP_SERVER_ADDRESS=0.0.0.0:12345
    API_KEY=[your-secret-api-key]
    
    # 客户端配置
    MCP_SERVER_URL=http://127.0.0.1:12345/sse
    ModelType=openai
    OPENAI_API_KEY=[your-openai-api-key]
    OPENAI_BASE_URL=[your-openai-base-url]
    OPENAI_MODEL=[your-openai-model]
    OLLAMA_BASE_URL=[your-ollama-base-url]
    OLLAMA_MODEL=[your-ollama-model]
    PORT=8080
    
⚙️ 启动服务器
cd server
go run main.go

服务器将监听配置的地址和端口,为客户端提供 Kubernetes 资源管理 API。

💡 提示: 确保服务器有权限访问 Kubernetes 集群。如果在集群外运行,请正确配置 kubeconfig 文件。
🖥️ 启动命令行客户端
cd client
go run main.go

命令行客户端启动后,会连接到服务器并提供命令行交互界面。同时,它会在后台启动一个 Webhook 监听器(默认监听 http://localhost:8080/webhook)用于接收 Alertmanager 告警。

🔔 注意: 首次启动时,客户端会尝试连接服务器并获取可用工具列表。如果连接失败,将自动重试。

💬 使用示例

客户端启动后,您可以使用自然语言输入以下示例命令:

🔄 Kubernetes 资源管理
功能 示例命令
查看命名空间 查看所有命名空间
查看 Pod 查看 default 命名空间中的所有 Pod
Pod 详情 描述 pod-name 这个 Pod
查看日志 查看 pod-name 的日志
扩展 Deployment 将 deployment-name 扩展到 3 个副本
创建 ConfigMap 创建一个名为 app-config 的 ConfigMap,包含 key1=value1 和 key2=value2
创建 Ingress 为 my-service 服务创建一个 Ingress,主机名为 example.com,路径为 /api
更新 Secret 更新 my-secret,添加 username=admin 和 password=secure123
🚨 故障诊断与告警处理
功能 示例命令
集群健康检查 检查集群健康状态
Pod 诊断 诊断 Pod my-pod 的问题
节点诊断 诊断节点 worker-1 的问题
Deployment 诊断 分析 Deployment my-app 的问题
告警分析 分析 CPU 使用率高的告警,节点是 worker-1,严重性是 warning
企业微信通知 发送企业微信消息"Kubernetes集群重启完成"
🐧 Linux 系统排查
功能 示例命令
系统信息 获取节点 worker-1 的系统信息
进程信息 查看节点 worker-1 上的 kubelet 进程
资源使用情况 查看节点 worker-1 的资源使用情况
日志分析 分析节点 worker-1 上的 /var/log/syslog 日志,查找 error 关键字
服务状态 检查节点 worker-1 上的 docker 服务状态
⚙️ Kubernetes 组件排查
功能 示例命令
Kubelet 状态 检查节点 worker-1 上的 Kubelet 状态
容器运行时 检查节点 worker-1 上的 containerd 状态
Kube-Proxy 检查节点 worker-1 上的 Kube-Proxy 状态
CNI 状态 检查节点 worker-1 上的 calico 状态
组件日志 查看节点 worker-1 上的 kubelet 日志
容器检查 检查节点 worker-1 上的容器 abc123 的详情

🔒 安全注意事项

⚠️ 重要安全提示

  • 服务器部署环境:服务器应部署在安全的环境中,因为它具有 Kubernetes 集群的访问权限
  • 认证机制:生产环境中应配置合适的认证机制,避免未授权访问
  • 操作确认:对于危险操作(如删除资源),客户端将提供安全提示和确认机制
  • 权限控制:建议为服务器使用的 Kubernetes 服务账号配置最小必要权限
  • API 密钥保护:确保 API 密钥和 Webhook URL 等敏感信息得到妥善保护

📁 项目结构

项目文件结构
mcp-devops/
├── client/                # 客户端代码
│   ├── main.go            # 客户端主程序
│   └── pkg/               # 客户端包
│       ├── model/         # 模型相关代码
│       └── mcp/           # MCP 客户端实现
├── server/                # 服务器代码
│   ├── main.go            # 服务器主程序
│   ├── k8s/               # Kubernetes 操作工具
│   │   ├── client.go      # Kubernetes 客户端
│   │   ├── pod.go         # Pod 相关操作
│   │   ├── deployment.go  # Deployment 相关操作
│   │   ├── service.go     # Service 相关操作
│   │   ├── statefulset.go # StatefulSet 相关操作
│   │   ├── namespace.go   # Namespace 相关操作
│   │   ├── ingress.go     # Ingress 相关操作
│   │   ├── configmap.go   # ConfigMap 相关操作
│   │   ├── secret.go      # Secret 相关操作
│   │   ├── troubleshoot.go # 故障诊断工具
│   │   └── wechat.go      # 企业微信通知
│   ├── linux/             # Linux 系统操作工具
│   │   ├── system.go      # 系统信息和资源监控
│   │   └── kubernetes.go  # Kubernetes 组件排查
│   └── sse/               # SSE 服务实现
│       └── server.go      # SSE 服务器
├── .env                   # 环境配置文件
├── go.mod                 # Go 模块定义
└── go.sum                 # Go 依赖校验

🔧 开发与扩展

💡 扩展指南

如需添加新的 Kubernetes 资源管理功能,您可以按照以下步骤进行:

  1. server/k8s/ 目录中添加相应的处理函数
  2. server/sse/server.go 中注册新的工具
  3. 重启服务器和客户端

示例:添加对 CronJob 资源的支持

// 1. 创建 server/k8s/cronjob.go 文件实现相关功能
// 2. 在 server/sse/server.go 中注册工具:
svr.AddTool(mcp.NewTool("list_cronjobs",
    mcp.WithDescription("列出指定命名空间中的所有CronJob"),
    mcp.WithString("namespace",
        mcp.Description("要查询的命名空间, 默认为default"),
        mcp.DefaultString("default"),
    ),
), k8s.ListCronJobsTool)
// 3. 重启服务器和客户端

⚠️ 注意事项

🔑 API 密钥:客户端需要使用大语言模型 API,请确保 OPENAI_API_KEY 有效

⚙️ Kubernetes 配置:如果在集群外运行服务器,请确保正确配置了 kubeconfig

🤖 模型选择:默认配置使用阿里通义模型 API,可以根据需要更换为其他 API

📱 企业微信:企业微信通知功能需要配置有效的企业微信群机器人 Webhook URL

🔔 告警集成:如需使用 Alertmanager 告警集成,请配置 Alertmanager 将告警发送到客户端运行机器的 http://<client-ip>:9094/webhook 地址


Made with ❤️ by MCP-DevOps Team

GitHubIssuesWiki

相关推荐

  • av
  • 毫不费力地使用一个命令运行LLM后端,API,前端和服务。

  • WangRongsheng
  • 🧑‍🚀 llm 资料总结(数据处理、模型训练、模型部署、 o1 模型、mcp 、小语言模型、视觉语言模型)|摘要世界上最好的LLM资源。

  • rulego
  • ⛓️Rulego是一种轻巧,高性能,嵌入式,下一代组件编排规则引擎框架。

  • sigoden
  • 使用普通的bash/javascript/python函数轻松创建LLM工具和代理。

  • RockChinQ
  • 😎简单易用、🧩丰富生态 -大模型原生即时通信机器人平台| 适配QQ / 微信(企业微信、个人微信) /飞书 /钉钉 / discord / telegram / slack等平台| 支持chatgpt,deepseek,dify,claude,基于LLM的即时消息机器人平台,支持Discord,Telegram,微信,Lark,Dingtalk,QQ,Slack

  • modelscope
  • 开始以更轻松的方式开始构建具有LLM授权的多代理应用程序。

  • dmayboroda
  • 带有可配置容器的本地对话抹布

  • evilsocket
  • 简单的代理开发套件。

  • yamadashy
  • 📦ropomix(以前是repopack)是一种功能强大的工具,可将整个存储库包装到一个单一的AI友好文件中。非常适合当您需要将代码库提供给大型语言模型(LLMS)或其他AI工具(例如Claude,Chatgpt,Deepseek,Cllexity,Gemini,Gemini,Gemma,Gemma,Lllama,Grok等)等其他AI工具。

  • nbonamy
  • Witsy:桌面AI助手

  • evalstate
  • 定义,提示和测试启用MCP的代理和工作流程

    Reviews

    3.4 (7)
    Avatar
    user_scN4mxzt
    2025-04-24

    As a dedicated user of mcp-devops by yunzck8s, I must say this tool has significantly streamlined our development and operations processes. Its seamless integration and user-friendly interface make it indispensable for our daily tasks. The support and documentation are top-notch, ensuring we can utilize all its powerful features efficiently. Highly recommended for any DevOps team looking to enhance their workflow!

    Avatar
    user_hmn8y7BZ
    2025-04-24

    I've been using mcp-devops by yunzck8s, and it's been a game changer for my development workflow. The tool is incredibly efficient and user-friendly, streamlining DevOps processes seamlessly. Highly recommend it for anyone looking to optimize their operations.

    Avatar
    user_rBZzoNQG
    2025-04-24

    As a dedicated user of mcp-devops by yunzck8s, I am extremely impressed with its robust functionality and seamless integration in our workflows. This tool has significantly streamlined our DevOps processes, making it easier to automate tasks and manage infrastructure efficiently. Highly recommend for anyone looking to optimize their development and operations pipeline.

    Avatar
    user_y2LIM2Xa
    2025-04-24

    I've been using mcp-devops by yunzck8s and am thoroughly impressed. It streamlines the devops process, making deployment and management a breeze. The intuitive interface and reliable performance have significantly boosted our team's productivity. Highly recommended for anyone looking to enhance their devops workflow!

    Avatar
    user_2TkpMUVF
    2025-04-24

    As a dedicated user of the mcp-devops application by yunzck8s, I am extremely impressed with its performance. This tool has significantly streamlined our DevOps processes with its intuitive interface and robust features. It’s versatile and user-friendly, making it an indispensable part of our workflow. Highly recommended for anyone looking to enhance their DevOps experience!

    Avatar
    user_SrDS8sgb
    2025-04-24

    As a devoted user of mcp-devops, I am incredibly impressed by its capabilities. This tool, authored by yunzck8s, has significantly streamlined our development and operations processes. From seamless integration to robust performance, mcp-devops has become an indispensable asset to our workflow. Highly recommend it for any devops team looking for efficiency and reliability!

    Avatar
    user_PiXuNvG3
    2025-04-24

    As a dedicated user of mcp-devops by yunzck8s, I have found this tool to be incredibly efficient and user-friendly for managing DevOps tasks. The comprehensive features and intuitive interface streamline workflows and improve productivity. Highly recommend for any team looking to enhance their DevOps practices!