Kubernetes AI管理系统

一个结合AI技术的Kubernetes管理系统,提供实时诊断、资源监控和智能日志分析功能,通过自然语言交互简化Kubernetes集群管理。

  • by hariohmprasath
  • Kotlin
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 hariohmprasath/k8s-ai

使用说明

🎯 Kubernetes人工智能管理系统

基于人工智能的Kubernetes管理(MCP+代理)

    ⎈ K8s AI Management
    ├── 🤖 MCP Server
    ├── 🔍 K8s Tools
    └── 🚀 Agent mode with Rest API

✨ 概述

该项目将人工智能的力量与Kubernetes管理相结合。用户可以执行实时诊断、资源监控和智能日志分析。它通过对话式人工智能简化了Kubernetes的管理,提供了一种现代的替代方案。

💡 只需自然提问,无需死记硬背命令!

🏗️ 项目结构

该项目分为以下模块:

  • 代理:Rest API支持的代理模式,用于使用自然语言分析集群
  • mcp服务器:MCP服务器支持可与MCP主机集成的工具(如Claude桌面),以提供完整的体验
  • 工具:用于集群分析/管理的Kubernetes工具(由代理和mcp服务器使用)

🎁 特性

这个AI驱动的系统能够理解关于Kubernetes集群的自然语言查询。以下是系统提供的一些功能,可以使用自然语言进行查询:

🏥 群集运行状况和诊断

  • “我的集群的状态如何?”
  • “显示默认命名空间中的所有Pod”
  • “默认命名空间中是否有任何失败的Pod?”
  • “我的集群中使用最多资源的是什么?”
  • “给我一个完整的集群健康检查”
  • “是否有任何节点未处于就绪状态?”
  • “显示默认命名空间中已运行超过7天的Pod”
  • “识别在默认命名空间中运行的重启次数高的Pod”

🌐 网络分析

  • “显示支付服务的日志”
  • “列出群集中的所有入口”
  • “显示所有服务及其端点”
  • “检查我的服务‘api网关’是否有任何端点”
  • “显示所有具有外部IP的暴露服务”

💾 存储管理

  • “列出群集中的所有持久卷”
  • “显示未绑定的存储声明”
  • “群集中有哪些可用的存储类?”
  • “哪些Pod正在使用持久存储?”
  • “是否有接近容量的存储卷?”

⏱️ 作业和CronJob分析

  • “列出批处理命名空间中所有正在运行的作业”
  • “显示过去24小时内失败的作业”
  • “CronJobs计划在接下来的一个小时内运行什么?”
  • “显示'备份'作业的执行历史记录”

⎈Helm发布管理

  • “列出所有Helm版本”
  • “将MongoDB图表升级到12.1.0版本”
  • “为我的Prometheus版本配置了哪些值?”
  • “回滚失败的Elasticsearch版本”
  • “显示Prometheus版本的修订历史记录”
  • “比较不同Helm版本之间的值”
  • “检查我集群中过时的Helm图表”
  • “我的Elasticsearch图表的依赖关系是什么?”

注意:该系统使用人工智能来分析日志、事件和资源使用中的模式,以提供智能诊断和建议。

🛠️ 先决条件

要求 版本
☕ JDK 17或更高版本
🧰 Maven 3.8或更高版本
⎈Minikube/任何Kubernetes集群 已配置 ~/.kube/config

注: 系统使用kubeconfig文件 ~/.kube/config,因此请确保其配置正确。


🏗️ 1.项目建设

# Build all modules
mvn clean package

# Run the MCP server
java -jar mcp-server/target/mcp-server-1.0-SNAPSHOT.jar

# Alternatively, run the agent directly
java -jar agent/target/agent-*-fat.jar

🛠️ 2.Minikube设置

安装minikube并创建nginx部署:

# Install minikube
brew install minikube

# Start minikube
minikube start

# Make sure kubeconfig is set
kubectl config use-context minikube

# Deploy nginx
kubectl create deployment nginx --image=nginx:latest

# Check whether nginx is running
kubectl get pods

注: 你应该看看 nginx 输出中的pod

🛠️ 3.测试项目

🤝 3.1 MCP服务器与Claude Desktop的集成

参见 mcp服务器/README.md 有关如何与Claude Desktop集成的说明

3.2.具有Rest API的代理模式

参见 代理/README.md 有关如何运行代理的说明


📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。