mcpField
K
Kubernetes AI Ops Agent

Kubernetes AI Ops Agent

本地服务
github.com/jhzhu89云与基础设施477 周前更新

关于 Kubernetes AI Ops Agent

面向 DevOps 工程师和 Kubernetes 管理员的实验性 Agent,可通过自然语言对话管理集群。它结合 Kubernetes 与 Prometheus MCP 服务,并提供 Chainlit 网页界面。

主要功能

  1. 01自然语言执行集群操作
  2. 02调用 Kubernetes MCP 工具
  3. 03访问 Prometheus 指标
  4. 04Chainlit 对话界面
  5. 05支持 Docker 和 Helm 部署

适用场景

  1. 01列出命名空间中的 Pod
  2. 02排查处于 CrashLoopBackOff 状态的 Pod
  3. 03查看集群监控数据

MCP 相关

通过 Kubernetes 和 Prometheus MCP 服务执行集群操作并获取监控数据;这些服务向 Agent 提供工具和指标。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"kubernetes-ai-ops-agent": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Kubernetes AI 运维 Agent

通过自然语言交互,提供由 AI 驱动的 Kubernetes 运维与管理助手。

概述

Kubernetes AI 运维 Agent 是一个智能 Agent,可帮助 DevOps 工程师和 Kubernetes 管理员通过对话界面管理 Kubernetes 集群。该项目利用大语言模型(LLM)理解用户意图,并通过专用的 MCP(Model Context Protocol)服务执行 Kubernetes 操作。

Kubernetes AI 运维 Agent 演示

项目状态

注意:该项目目前处于实验阶段,主要用于验证将大语言模型(LLM)与 Kubernetes、Prometheus 及其他 MCP(Model Context Protocol)服务集成的能力和潜在优势。随着项目发展,功能可能会发生重大变化。

功能

  • 🤖 AI 驱动的助手:使用自然语言与 Kubernetes 集群交互
  • 🧰 工具集成:通过专用工具执行 Kubernetes 操作
  • 🚀 可部署:提供 Docker 镜像和 Helm chart,便于部署
  • 📊 Web 界面:基于 Chainlit 构建,提供交互式聊天体验

先决条件

  • Python 3.10+
  • Docker
  • Kubernetes 集群访问权限
  • Helm(用于部署)

安装

本地开发
  1. 克隆仓库:

    git clone https://github.com/yourusername/kubernetes-ai-ops-agent.git
    cd kubernetes-ai-ops-agent
    
  2. 安装依赖:

    pip install -r requirements.txt
    
  3. 安装所需的 MCP 服务:

    # Install the Kubernetes MCP server
    npm install -g @kubernetes-ai/mcp-server-kubernetes
    
    # Install the Prometheus MCP server
    pip install prometheus-mcp-server
    

    注意:本地开发时请勿使用 deps/ 目录中的 MCP 服务。这些是经过定制的版本:

    • deps/ 中的 Kubernetes MCP 服务已修改为使用 loadFromCluster,以便在 Pod 环境中正确初始化。
    • deps/ 中的 MCP 服务将直接打包到容器镜像中,而不是在运行时下载。
  4. 配置 Kubernetes 访问:

    • 确保已正确设置 kubeconfig
    • Agent 将使用当前的 kubectl 上下文
  5. 启动应用:

    chainlit run src/main.py
    
Helm Chart 部署
  1. 构建并推送 Docker 镜像:
# Build the Docker image
docker build -t <YOUR_CONTAINER_REGISTRY>/kubernetes-ai-ops-agent:<TAG> .

# Push the image to your container registry
docker push <YOUR_CONTAINER_REGISTRY>/kubernetes-ai-ops-agent:<TAG>
  1. 创建 customized.values.yaml 文件,并填写所需的配置:
# Customized values for kubernetes-ai-ops-agent
image:
  repository: <YOUR_CONTAINER_REGISTRY>/kubernetes-ai-ops-agent

# Configure the secrets
secrets:
  data:
    # Option 1: For Azure OpenAI configuration
    AZURE_OPENAI_ENDPOINT: "https://<YOUR_OPENAI_SERVICE>.openai.azure.com/"
    AZURE_OPENAI_API_KEY: "<YOUR_AZURE_OPENAI_API_KEY>"
    AZURE_OPENAI_MODEL: "<YOUR_DEPLOYMENT_NAME>"
    OPENAI_API_VERSION: "<API_VERSION>"
    
    # Option 2: For standard OpenAI configuration
    # OPENAI_API_KEY: "<YOUR_OPENAI_API_KEY>"
    # OPENAI_MODEL: "<YOUR_MODEL_NAME>" # e.g., "gpt-4o"
    
    # Prometheus configuration
    PROMETHEUS_URL: "http://<YOUR_PROMETHEUS_SERVICE>.<NAMESPACE>:9090"
  1. 使用自定义配置安装 chart:
cd deploy/helm
helm install kubernetes-ai-ops ./kubernetes-ai-ops-agent -f customized.values.yaml
  1. 使用端口转发访问应用:
# Port-forward the service to access it locally
# Use the namespace where you installed the chart (default used here as example)
kubectl port-forward svc/kubernetes-ai-ops-agent 9000:9000 -n <NAMESPACE>

# Now you can access the web interface at http://localhost:9000

注意:将 <NAMESPACE> 替换为安装 Helm chart 的命名空间。 如果安装时未指定命名空间(-n 标志),则会使用当前上下文的 命名空间(通常为 "default")。

架构

该应用由以下组件构成:

  • Chainlit 界面:用于与 AI 助手交互的 Web UI
  • Agent 层:处理自然语言、规划操作并执行操作
  • MCP 服务:
    • Kubernetes MCP 服务:处理 Kubernetes API 操作
    • Prometheus MCP 服务:提供监控指标和数据

模型支持

该项目目前仅支持 OpenAI 模型。你可以将 Agent 配置为使用:

  • OpenAI API
  • Azure OpenAI API

这两种选项的配置详情均在部署设置中提供。

使用示例

集群基本信息
User: "Show me all pods in the default namespace"
故障排查
User: "Why is my pod in CrashLoopBackOff state?"

项目结构

  • src/:主应用程序代码
    • main.py:Chainlit 应用程序的主入口
    • chainlit_session_manager.py:管理 Chainlit 用户会话
    • chainlit_session_storage.py:处理会话数据存储
    • interfaces.py:定义接口和抽象
    • kubernetes_ai_ops_agent_provider.py:Kubernetes 运维提供程序的实现
    • mcp_server_provider_impl.py:MCP 服务提供程序的实现
    • openai_client_factory_impl.py:OpenAI 客户端配置工厂
  • deps/:依赖项和 MCP 服务
    • mcp-server-kubernetes/:Kubernetes MCP 服务
    • prometheus-mcp-server/:Prometheus MCP 服务
  • deploy/:部署配置
    • helm/:用于 Kubernetes 部署的 Helm chart

贡献

欢迎贡献!请参阅 CONTRIBUTING.md 了解相关指南。

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。