项目简介

KubeStellar A2A Agent 是一个基于 Model Context Protocol (MCP) 构建的服务器端应用,旨在通过标准化的方式向大型语言模型(LLM)客户端提供丰富的上下文信息和操作能力。它将复杂的Kubernetes多集群管理任务抽象为可供LLM调用的工具,从而实现智能化的集群运维、资源部署和故障排查。

主要功能点

  • 多集群管理与分析: 深度搜索、拓扑分析、资源清单管理,覆盖KubeStellar架构中的WDS(工作负载描述空间)、ITS(库存与传输空间)和WEC(工作负载执行集群)。
  • Helm Chart 部署集成: 支持跨集群Helm Chart的安装、升级、卸载,并能自动创建KubeStellar BindingPolicy以实现智能化的工作负载分发。
  • Kubernetes 资源操作: 提供对Kubernetes集群(包括kubeconfig管理、命名空间工具、GVRC资源发现、多集群资源创建与日志聚合)的细粒度操作能力。
  • 可插拔的LLM提供商支持: 虽然MCP服务器本身不托管LLM,但其内置的交互式AI Agent支持集成OpenAI和Google Gemini等主流LLM服务。
  • 标准化上下文服务: 通过JSON-RPC协议提供上下文服务,包括资源管理、工具执行和会话管理,为LLM应用提供安全、可扩展的后端支持。

安装步骤

  1. 环境准备:
    • 确保已安装 Python 3.8+。
    • 确保已安装 'kubectl' 工具并配置好您的Kubernetes集群上下文。
    • 推荐使用 'uv' 管理Python虚拟环境和依赖。
  2. 克隆仓库:
    git clone https://github.com/kubestellar/a2a.git
    cd a2a
  3. 创建并激活虚拟环境:
    uv venv
    # 激活虚拟环境 (Linux/macOS)
    source .venv/bin/activate
    # 激活虚拟环境 (Windows PowerShell)
    .venv\Scripts\Activate.ps1
  4. 安装依赖:
    uv pip install -e ".[dev]"
  5. 配置LLM API Key (可选,用于交互式AI Agent): 如果您想使用内置的交互式AI Agent功能,需要配置API Key。
    uv run kubestellar config set-key openai YOUR_OPENAI_API_KEY
    uv run kubestellar config set-key gemini YOUR_GEMINI_API_KEY
    # 设置默认提供商
    uv run kubestellar config set-default gemini

服务器配置

该仓库提供了一个MCP服务器实现,可以集成到支持MCP协议的LLM客户端中(例如Claude Desktop)。您需要将以下配置添加到MCP客户端的配置中,以使其能够启动并连接到KubeStellar A2A MCP服务器。

{
  "mcpServers": {
    "kubestellar": {
      "command": "uv",
      "args": ["run", "kubestellar-mcp"],
      "cwd": "/path/to/a2a" 
    }
  }
}
  • 'kubestellar': 您为该MCP服务器实例定义的名称,LLM客户端将使用此名称来引用它。
  • 'command': 启动MCP服务器的命令。这里使用 'uv' 命令来运行 Python 项目中定义的 'kubestellar-mcp' 入口点。
  • 'args': 传递给 'command' 的参数列表。'run kubestellar-mcp' 指示 'uv' 运行名为 'kubestellar-mcp' 的脚本或模块,该模块包含MCP服务器的启动逻辑。
  • 'cwd': MCP服务器进程的工作目录。请务必将其替换为您的 'a2a' 仓库在本地文件系统中的绝对路径。

基本使用方法

  1. 启动交互式AI Agent (可选):

    uv run kubestellar agent
    # 或指定提供商
    uv run kubestellar agent --provider openai

    这将启动一个命令行交互界面,您可以在其中与LLM交互,并让LLM调用A2A Agent提供的工具来管理Kubernetes。

  2. 通过MCP客户端连接: 按照上述“服务器配置”部分,将配置添加到您的MCP客户端。客户端启动后将自动连接并与KubeStellar A2A MCP服务器交互,LLM将能够通过MCP协议调用Agent提供的Kubernetes管理工具。

  3. 直接通过CLI调用工具: 您也可以直接通过CLI命令调用A2A Agent提供的任何工具函数,这对于自动化脚本或测试非常有用。

    # 列出所有可用工具函数
    uv run kubestellar list-functions
    
    # 查看特定工具函数的详细描述和参数Schema
    uv run kubestellar describe get_kubeconfig
    
    # 执行特定工具函数(例如获取kubeconfig摘要)
    uv run kubestellar execute get_kubeconfig --param kubeconfig_path=/path/to/your/kubeconfig --param detail_level=summary
    # 或使用JSON格式参数
    uv run kubestellar execute get_kubeconfig --params '{"kubeconfig_path": "/path/to/your/kubeconfig", "detail_level": "summary"}'

信息

分类

开发者工具