项目简介
'kubectl-ai' 是一个命令行工具,旨在通过自然语言简化与Kubernetes集群的交互。它将用户的意图转化为精确的 'kubectl' 命令执行,并能通过MCP协议作为服务器,向支持MCP的LLM客户端提供Kubernetes相关的工具能力。
主要功能点
- 自然语言交互: 用户可以使用日常语言提问或指示,'kubectl-ai' 会理解并执行相应的Kubernetes操作。
- 智能翻译: 自动将用户请求转化为 'kubectl' 命令。
- 多LLM支持: 支持多种大型语言模型作为后端,包括Gemini、Ollama、llama.cpp、Grok、Azure OpenAI和OpenAI。
- 工具调用: 内置 'kubectl', 'bash', 'trivy' 等工具,LLM可以调用这些工具来获取集群信息或执行操作。
- MCP服务器模式: 可以作为MCP服务器运行,通过JSON-RPC协议向兼容的LLM客户端暴露其Kubernetes工具能力,实现LLM对Kubernetes环境的感知和控制。
安装步骤
快捷安装 (仅限 Linux & MacOS)
打开终端并运行以下命令:
curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash
手动安装 (Linux, MacOS 和 Windows)
- 访问 kubectl-ai releases page 下载适合您操作系统的最新版本。
- 解压下载的文件,将可执行文件 ('kubectl-ai' 或 'kubectl-ai.exe') 移动到您的系统PATH环境变量包含的目录中(例如 '/usr/local/bin/')。
使用 Krew 安装 (Linux/macOS/Windows)
首先确保您已安装 krew。然后运行:
kubectl krew install ai
安装后,您可以作为 'kubectl' 插件调用:'kubectl ai ...'。
服务器配置 (供MCP客户端使用)
'kubectl-ai' 可以在MCP服务器模式下运行,以便支持MCP协议的LLM客户端连接并利用其Kubernetes工具。MCP客户端通常需要一个JSON格式的配置,至少包含服务器的名称、启动命令和参数。
对于 'kubectl-ai' 作为MCP服务器,客户端配置信息应包含:
- 'server name': 服务器的标识名称,'kubectl-ai' 默认使用 '"kubectl-ai"'。
- 'command': 启动MCP服务器进程的可执行文件路径。这应该是您系统中安装的 'kubectl-ai' 可执行文件的完整路径。
- 'args': 启动MCP服务器进程所需的命令行参数列表。最基本且必须的参数是开启MCP模式的标志。
例如,一个典型的客户端配置可能需要指定如下参数:
- '"--mcp-server"': 开启 'kubectl-ai' 的MCP服务器模式。这是一个必要参数。
- 您可以根据需要配置其他参数,这些参数将影响 'kubectl-ai' 服务器的行为,例如:
- '"--kubeconfig <path>"': 指定要使用的kubeconfig文件路径(如果与默认值不同)。
- '"--trace-path <path>"': 指定MCP交互的日志文件路径。
- '"--remove-workdir=<bool>"': 配置是否在退出时删除临时工作目录。
- '"--skip-permissions=<bool>"': 配置是否跳过修改资源的权限确认。
LLM客户端应根据其配置接口,将这些信息提供给客户端运行时。
基本使用方法
作为命令行工具(非MCP模式):
在终端中运行 'kubectl-ai' 后跟您的自然语言查询:
kubectl-ai "show me all pods in the default namespace"
您也可以进入交互模式,只需运行 'kubectl-ai' 而不带任何参数。
作为MCP服务器:
运行 'kubectl-ai' 并带上 '--mcp-server' 标志。此模式通常不由用户直接交互,而是由支持MCP的LLM客户端启动和管理:
kubectl-ai --mcp-server [其他可选参数]
LLM客户端会连接到这个正在运行的 'kubectl-ai' 进程的Stdio,并通过MCP协议进行通信。
信息
分类
开发者工具