使用说明
项目简介
Kubernetes AI管理系统 (k8s-ai) 提供了一个基于 Model Context Protocol (MCP) 的服务器端实现,旨在通过自然语言交互简化 Kubernetes 集群的管理。该项目包含一个 MCP 服务器 ('mcp-server') 和一个 Agent 模式 ('agent'),均使用 'tools' 模块提供的 Kubernetes 工具集。MCP 服务器可以集成到支持 MCP 协议的客户端(如 Claude Desktop),使用户能够通过自然语言查询和操作 Kubernetes 集群。
主要功能点
- 集群健康与诊断: 查询集群状态、Pod 状态、资源使用情况、节点状态等,进行集群健康检查。
- 网络分析: 查看服务日志、Ingress 列表、服务和端点信息、外部暴露服务等,进行网络拓扑分析。
- 存储管理: 列出持久卷、存储声明、存储类、使用持久存储的 Pod,以及存储容量监控。
- Job 与 CronJob 分析: 查看 Job 和 CronJob 的运行状态、历史记录、计划任务等。
- Helm Release 管理: 列出 Helm Release、升级/回滚 Helm Chart、查看配置值、依赖关系等。
所有功能均可通过自然语言查询触发,无需记忆复杂的 kubectl 命令。
安装步骤
-
环境准备:
- 确保已安装 JDK 17+ 和 Maven 3.8+。
- 确保已配置 Kubernetes 集群的 'kubectl' 命令行工具,并且 '~/.kube/config' 文件配置正确,指向你的 Kubernetes 集群 (例如 Minikube)。
-
项目构建: 打开终端,克隆或下载该仓库代码,并进入项目根目录。
# 构建所有模块 mvn clean package构建成功后,'mcp-server' 模块的可执行 JAR 文件将位于 'mcp-server/target/mcp-server-1.0-SNAPSHOT.jar'。
-
启动 MCP 服务器: 在终端中执行以下命令启动 MCP 服务器:
java -jar mcp-server/target/mcp-server-1.0-SNAPSHOT.jar服务器默认会在本地启动并监听 MCP 客户端的连接。
服务器配置 (MCP 客户端配置)
要将此 MCP 服务器集成到 MCP 客户端(例如 Claude Desktop),您需要在客户端中配置服务器连接信息。以下是一个 JSON 格式的配置示例,用于配置 MCP 客户端连接到此 'k8s-ai' MCP 服务器:
{ "serverName": "k8s-mcp-server", // 自定义服务器名称,在客户端中显示 "command": "java", // 启动服务器的命令,这里使用 java "args": [ // 启动命令的参数列表 "-jar", "mcp-server/target/mcp-server-1.0-SNAPSHOT.jar" // MCP 服务器 JAR 文件路径,相对于客户端的工作目录,或者使用绝对路径 ], "protocol": "stdio", // MCP 服务器使用的通信协议,通常为 stdio "capabilities": [ // 声明服务器提供的能力,通常根据服务器实际情况配置 "resources", "tools", "prompts" ] }
配置参数说明:
- 'serverName': 为你的 MCP 服务器指定一个易于识别的名称。
- 'command': 启动 MCP 服务器的可执行命令,通常是 'java'。
- 'args': 启动命令的参数列表,包括 '-jar' 和 MCP 服务器 JAR 文件的路径。 请根据你的实际文件路径进行调整。 如果你的 MCP 客户端和服务器在不同机器上,你需要确保客户端能够访问到服务器 JAR 文件或者服务器已经在运行并监听连接。 在 Claude Desktop 等客户端中,通常配置的是本地启动服务器的命令。
- 'protocol': MCP 服务器使用的通信协议。 'stdio' 表示标准输入输出流,是常见的本地进程通信方式。
- 'capabilities': 声明此 MCP 服务器提供的 MCP 协议能力,例如 'resources', 'tools', 'prompts'。 请根据 'k8s-ai' 项目的实际实现进行配置,通常资源和工具是 MCP 服务器的核心能力。
请注意: 上述配置是一个基础示例。 实际配置可能需要根据 MCP 客户端的具体要求和 'k8s-ai' 项目的详细文档 ('mcp-server/README.md',如果存在) 进行调整。 确保 MCP 客户端能够正确执行 'command' 和 'args' 来启动和连接到 MCP 服务器。
基本使用方法
- 确保 MCP 服务器已成功启动并运行。
- 在支持 MCP 协议的客户端(例如 Claude Desktop)中,按照客户端的指引添加和配置上述服务器连接信息。
- 连接成功后,即可在客户端中使用自然语言向 Kubernetes 集群提问,例如:
- "我的集群状态如何?"
- "列出 default 命名空间下的所有 Pod"
- "payment service 的日志是什么?"
- "集群中有哪些存储类?"
MCP 服务器会将自然语言查询转换为 Kubernetes 集群操作,并将结果返回给客户端。
信息
分类
开发者工具