Kube-Whisperer

Kube-Whisperer

Autonomous AI agent for Kubernetes triage and infrastructure management using natural language.

Category
访问服务器

README

🚀 Kube-Whisperer

Autonomous AI Agent for Kubernetes Triage & Infrastructure Management

Kube-Whisperer is an experimental, fully autonomous AI agent built on the Model Context Protocol (MCP). It bridges the gap between Large Language Models and your Kubernetes clusters, allowing you to manage, debug, scale, and provision your infrastructure entirely through natural language conversations.


📖 Table of Contents

  1. What is Kube-Whisperer?
  2. Architecture Overview
  3. Features & Capabilities
  4. Prerequisites
  5. Installation & Setup
  6. Usage Guide
  7. Project Structure

🤖 What is Kube-Whisperer?

Managing Kubernetes can be complex and verbose. When a pod crashes, DevOps engineers typically run a series of commands (kubectl get pods, kubectl describe, kubectl logs) to triage the issue.

Kube-Whisperer automates this. Powered by a locally running LLM (e.g., Llama 3.1) and standard Kubernetes Python clients, Kube-Whisperer acts as a highly intelligent operator inside your cluster. You can ask it to "find out why my apps are crashing" or "spin up a new namespace and deploy this YAML file," and it will autonomously select the right tools, execute the API calls, and report back to you in plain English.


🏗️ Architecture Overview

The project is built around the Model Context Protocol (MCP), which provides a standardized way for AI models to interact with external tools and data sources.

  • MCP Server (server.py): A Python-based server that securely interfaces with your kubeconfig and the Kubernetes API. It exposes a strict set of predefined "tools" (e.g., list_pods, deploy_yaml) and handles argument validation to prevent rogue commands.
  • AI Agent CLI (agent_cli.py): The conversational interface. It connects to the MCP Server over stdio, fetches the available tools, translates them into a schema that the LLM understands, and orchestrates the chat loop. The Agent evaluates your requests, decides which tools to call, and parses the JSON results back into natural language.

✨ Features & Capabilities

The agent is currently equipped with 13 core infrastructure tools:

🔍 Intelligent Triage

  • list_pods: Lists all pods in a namespace alongside their current lifecycle phase.
  • get_pod_status: Deep dives into a specific pod, retrieving restart counts and failure conditions.
  • get_pod_logs: Streams the tail logs from a failing container to diagnose application-level errors.

⚡ Self-Healing & Management

  • delete_pod: Forcefully restarts stuck pods by deleting them.
  • list_deployments: Views deployment rollout status and replica health.
  • scale_deployment: Dynamically scales replica sets up or down based on your instructions.
  • restart_deployment: Triggers a zero-downtime rolling restart for a deployment.
  • delete_deployment: Tears down deployments.
  • list_services: Inspects cluster networking and exposed NodePorts/LoadBalancers.

🏗️ Infrastructure as Conversation

  • list_namespaces: Maps out the entire cluster's namespace landscape.
  • create_namespace: Provisions new logical boundaries on the fly.
  • deploy_yaml: Dynamically reads local YAML files and deploys them to a target namespace.
  • create_cluster: Interacts with the host OS to spin up brand new local Kubernetes clusters using engines like minikube or kind!

📋 Prerequisites

Before running Kube-Whisperer, ensure you have the following installed:

  • Python 3.10+
  • Kubernetes Cluster: A local cluster (MicroK8s, Minikube, or Kind) or a remote cluster.
  • Kubeconfig: Your ~/.kube/config must be properly configured and authenticated with your target cluster.
  • Ollama / LLM Provider: An LLM endpoint compatible with the OpenAI spec (the CLI defaults to looking for a local instance).

🚀 Installation & Setup

  1. Clone the Repository Navigate to your workspace and ensure you are in the kube_whisperer directory.

  2. Set up the Virtual Environment

    python3 -m venv .venv
    source .venv/bin/activate
    
  3. Install Dependencies Install the required packages from the requirements.txt file into your virtual environment:

    pip install -r requirements.txt
    

💬 Usage Guide

To start chatting with your cluster, simply run the Agent CLI:

.venv/bin/python agent_cli.py

Upon startup, the agent will initialize the connection to the MCP server, load the available tools, and present a Main Menu of its capabilities.

Example Interactions

Example 1: Triaging a Crash

You: "Are there any pods crashing in the broken-apps namespace?" Agent: (Calls list_pods -> Calls get_pod_status -> Calls get_pod_logs) "I found a pod in CrashLoopBackOff. The logs indicate it ran out of memory. Would you like me to restart the deployment?"

Example 2: Deploying Infrastructure

You: "Deploy the kube-whisperer-web.yaml file into the nginx-webserver namespace." Agent: (Calls deploy_yaml passing the dynamic namespace) "I have successfully deployed the resources into the nginx-webserver namespace!"

Example 3: Cluster Management

You: "Spin up a new minikube cluster named testing-env." Agent: (Calls create_cluster) "I've started the minikube provisioning process. The testing-env cluster is now coming online."


📁 Project Structure

  • agent_cli.py: The conversational AI frontend and reasoning loop.
  • server.py: The MCP backend that interacts directly with the Kubernetes API.
  • test_mcp.py: A utility script for testing MCP tool calls directly without the LLM.
  • kube-whisperer-web.yaml: A sample enterprise-grade landing page configured as a Kubernetes ConfigMap and NGINX Deployment.
  • oom-deployment.yaml: A sample crashing deployment used for testing the agent's triage capabilities.

Built with ❤️ and MCP.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选