项目简介

AgentK是一个智能助手,专注于Kubernetes YAML配置文件的分析、优化和管理。它利用GPT-4和Model Context Protocol (MCP) 提供专业的指导和工具,帮助用户按照最佳实践创建、维护和部署高质量的Kubernetes资源。AgentK不是监控工具,而是配置管理的专家。

主要功能点

  • 资源管理 (CRUD): 全面支持Kubernetes资源的创建、读取、更新和删除。可以列出集群中的资源、提取现有配置的YAML、实现资源部署以及删除资源。
  • 最佳实践指导: 提供基于生产环境最佳实践的改进建议,确保YAML配置符合质量标准,如一致的标签和注解、适当的资源限制与请求、以及恰当的安全配置。
  • YAML验证: 在应用配置之前,通过dry-run机制验证YAML文件的语法和结构,防止部署错误。
  • 冲突预防: 自动检测并预防资源部署时的潜在冲突。
  • 支持资源类型: 支持多种Namespaced资源(如Pods, Services, Deployments, ConfigMaps, Secrets, Ingresses, PVCs, ReplicaSets, StatefulSets, CronJobs, Jobs)和Cluster-wide资源(如Nodes, Persistent Volumes, Namespaces)。

安装步骤

建议使用Docker进行部署,确保您的系统已安装Docker和Docker Compose。

  1. 克隆仓库: 在命令行中执行以下命令克隆项目仓库:
    git clone https://github.com/viniolimpio3/AgentK-MCP.git
    cd AgentK-MCP
  2. 配置环境变量: 复制示例环境变量文件并编辑:
    cp .env.example .env
    编辑'.env'文件,配置您的'OPENAI_API_KEY'(OpenAI API密钥)和'MCP_SERVER_URL'(MCP服务器的URL,例如'http://localhost:3333')。
  3. 配置Kubernetes访问: 根据您的操作系统,编辑'docker-compose.yml'文件,取消注释相应的Kubernetes配置路径,以便AgentK能够访问您的Kubernetes集群。
    • Windows: 取消注释 '- ${USERPROFILE}/.kube/config:/app/.kube/config:ro'
    • Linux/Mac: 取消注释 '- ${HOME}/.kube/config:/app/.kube/config:ro'
  4. 启动服务: 使用Docker Compose构建并启动服务:
    docker-compose up --build -d
  5. 访问: 在浏览器中打开 'http://localhost:8501' 即可开始使用AgentK。

服务器配置

MCP客户端需要MCP服务器的连接信息来与其交互。以下是AgentK-MCP服务器的两种配置示例:

1. 通过HTTP/SSE方式连接(推荐用于容器部署或远程访问)

{
  "server_name": "AgentK-Server",
  "connection_type": "http",
  "url": "http://localhost:3333",
  "description": "AgentK-MCP服务器,通过HTTP/SSE接口提供Kubernetes管理工具。适用于LLM客户端通过网络连接远程MCP服务器。"
}

2. 通过Stdio方式连接(通常用于本地开发或与本地进程交互)

{
  "server_name": "AgentK-Server",
  "connection_type": "stdio",
  "command": "mcp",
  "args": ["run", "server/app/main.py"],
  "description": "AgentK-MCP服务器,通过Stdio接口提供Kubernetes管理工具。适用于LLM客户端进行本地或开发环境的Kubernetes配置交互。"
}

基本使用方法

通过Streamlit界面,在聊天框中输入您的问题或请求,AgentK会利用其内置的Kubernetes工具和GPT-4的能力,为您提供专业的YAML配置建议、执行集群操作或验证配置。例如:

  • "列出集群中所有的deployments。"
  • "提取名为'my-app'在'default'命名空间下的deployment的YAML配置。"
  • "我有一个新的deployment YAML文件,帮我检查一下它是否符合最佳实践并进行dry-run验证。"
  • "创建一个新的Service资源,YAML内容如下:..."
  • "删除'test'命名空间下名为'old-pod'的Pod。"

信息

分类

AI与计算