项目简介
K8sGPT 是一个命令行工具,它利用 AI 来扫描您的 Kubernetes 集群,诊断并以简单的英文解释遇到的问题。通过内置的分析器检测多种 Kubernetes 资源(如 Pod、Service、Deployment 等)的问题。除了作为独立的 CLI 工具使用,K8sGPT 也可以作为 Model Context Protocol (MCP) 服务器运行,为兼容的 LLM 客户端提供 Kubernetes 集群的上下文信息和分析能力。
主要功能点
- Kubernetes 集群分析: 扫描集群中的多种资源类型,识别潜在问题和异常状态。
- AI 驱动的诊断: 集成多种大型语言模型(LLM)后端(如 OpenAI, Azure, Google Gemini 等),对发现的问题进行自然语言解释并提供可能的解决方案。
- 丰富的分析器: 包含多种内置分析器,覆盖核心 Kubernetes 资源;支持通过集成外部工具或自定义分析器扩展能力。
- 上下文提供: 作为 MCP 服务器运行时,K8sGPT 可以响应 LLM 客户端的请求,提供关于集群资源状态、问题分析结果等上下文信息。
- Prompt 模板: 使用定义好的 Prompt 模板与 LLM 交互,确保输出格式和内容符合预期。
- 数据处理: 支持分析结果的匿名化、缓存管理等功能。
安装步骤
K8sGPT 提供了多种安装方式,包括包管理器、二进制下载等。
- 使用 Homebrew (macOS/Linux):
brew install k8sgpt # 或者先 tap 仓库再安装 # brew tap k8sgpt-ai/k8sgpt # brew install k8sgpt - 使用包管理器 (Linux): 支持 RPM 和 DEB 格式,具体请参考官方 README 或文档。
- 二进制安装 (Windows): 从 GitHub Release 页面下载对应架构的二进制文件,解压并配置 PATH 环境变量。
安装完成后,通常需要配置至少一个 AI 后端,例如:
k8sgpt auth add --backend openai # 添加 OpenAI 作为后端 # 根据提示输入 API 密钥 k8sgpt auth default --provider openai # 设置 OpenAI 为默认后端
更多安装和配置细节,请参考官方文档。
服务器配置
K8sGPT 可以通过 'serve' 命令以 MCP 服务器模式运行。LLM 客户端(如 Claude Desktop)需要配置如何启动和连接到这个 MCP 服务器。
以下是 LLM 客户端连接 K8sGPT MCP 服务器时可能需要配置的信息说明(具体配置方式取决于您的 LLM 客户端):
- 服务器名称 (server name): 客户端用于标识此 K8sGPT 服务的名称,例如 'k8sgpt'。
- 启动命令 (command): 启动 K8sGPT MCP 服务器进程的命令,通常是安装好的 'k8sgpt' 可执行文件路径。
- 启动参数 (args): 启动命令所需的参数,用于指定以 MCP 模式运行。例如,参数列表应包含 'serve' 和 '--mcp'。可选参数如 '--mcp-port' 可以指定服务器监听的端口,'--mcp-http' 可以启用 HTTP 传输(默认为 gRPC)。
一个示例的客户端配置片段(请注意,这只是说明配置内容,客户端实际配置时请根据其界面或文件格式填写):
{ "mcpServers": { "k8sgpt": { // 服务器名称 "command": "k8sgpt", // K8sGPT 可执行文件路径 "args": [ // 启动参数 "serve", "--mcp", "--mcp-port", "8089", // 可选:指定 MCP 监听端口 "--mcp-http" // 可选:启用 HTTP 传输 ] } } }
配置完成后,LLM 客户端将能够通过执行此命令启动 K8sGPT MCP 服务器,并与其建立连接以获取 Kubernetes 集群上下文。
基本使用方法
作为 MCP 服务器运行时,您无需直接与 K8sGPT 交互。LLM 客户端会负责与服务器通信,根据您在客户端中的指令,K8sGPT MCP 服务器将执行相应的分析操作并返回结果给客户端。
例如,在连接了 K8sGPT MCP 服务器的 LLM 客户端中,您可以尝试输入指令:
- "分析我的 Kubernetes 集群"
- "查看 default 命名空间下 Pod 的问题"
- "解释这个错误信息: [错误信息]"
K8sGPT MCP 服务器接收到客户端的请求后,会执行相应的分析流程,并结构化地将结果(如问题列表、AI 解释等)通过 MCP 协议返回给 LLM 客户端进行展示或进一步处理。
信息
分类
开发者工具