项目简介

'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)

  1. 访问 kubectl-ai releases page 下载适合您操作系统的最新版本。
  2. 解压下载的文件,将可执行文件 ('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协议进行通信。

信息

分类

开发者工具