Kubernetes AI操作助手

KS-AI是一款生产级的AI助手,通过自然语言理解实现Kubernetes操作,提供实时集群洞察的智能响应。

  • by Ayushpani
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 Ayushpani/ks-ai

使用说明

KS-AI:基于人工智能的Kubernetes操作助手

KS-AI 是一个生产级的人工智能助手,为Kubernetes操作带来自然语言理解。用简单的英语提问,通过实时集群洞察获得智能回复。


为什么选择KS-AI?

传统K8s管理 使用KS-AI
kubectl get pods -n app -o wide | grep -v Running “显示应用命名空间中不健康的Pod”
多命令+手动分析 单自然语言查询
需要记住kubectl语法 只需描述你需要什么
无上下文感知 了解集群状态

关键差异

  • 自然语言接口 -不再需要记忆kubectl标志和YAML语法
  • 实时集群感知 -AI查询您的实际集群,而不仅仅是文档
  • 安全生产 -内置护栏可防止未经确认的破坏性操作
  • 多模型回退 -速率限制下Gemini模型之间的自动故障切换
  • 美丽的TUI -带有动画的全功能终端界面

建筑

┌─────────────────────────────────────────────────────────────────┐
│                         KS-AI System                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────────────┐ │
│  │   Go TUI    │───▶│   FastAPI   │───▶│   MCP Server        │ │
│  │  (ks-ai)    │    │   Backend   │    │  (K8s Tools)        │ │
│  └─────────────┘    └─────────────┘    └─────────────────────┘ │
│        │                  │                      │              │
│        │                  ▼                      ▼              │
│        │           ┌─────────────┐    ┌─────────────────────┐  │
│        │           │  Gemini AI  │    │  Kubernetes API     │  │
│        │           │  (+ Fallback│    │  (kubectl/client)   │  │
│        │           │   Models)   │    └─────────────────────┘  │
│        │           └─────────────┘                              │
│        │                                                        │
│        └─────────── Server-Sent Events (SSE) ◀──────────────────│
│                     (Real-time Streaming)                       │
└─────────────────────────────────────────────────────────────────┘

特性

1.智能终端UI(TUI)

内置于 珍珠奶茶,TUI提供:

  • 拆分窗格视图 -左侧为聊天,右侧为命令登录
  • 可调整大小的窗格 - Ctrl+←/→ 调整宽度
  • 鼠标支持 -用鼠标滚轮滚动,点击聚焦
  • 键盘导航 -完整的vim风格和箭头键支持
  • 实时流媒体 -观看AI响应逐个字符显示
  • 语法高亮显示 -kubectl命令采用颜色编码
  • 动画元素 -行走的猫🐱, 加载旋转器

2.MCP服务器(模型上下文协议)

将Kubernetes操作公开为AI可调用工具:

工具 说明
list_namespaces 获取所有命名空间
list_pods 列出状态、重启、年龄的Pod
list_deployments 部署详细信息和副本状态
list_services 服务类型、端口、选择器
get_pod_logs 检索容器日志
describe_resource 详细的资源信息
apply_manifest 应用YAML配置
delete_resource 删除资源(确认后)
scale_deployment 调整副本计数
get_cluster_info 群集版本和运行状况

3.具有弹性的人工智能后端

  • 多模型回退 -在速率限制模型中循环:
    gemini-2.5-pro → gemini-2.0-flash → gemini-2.0-flash-lite → gemini-1.5-flash
    
  • 自动重试 -智能延迟解析的指数退避
  • 速率限制 -API调用之间的最小时间为500ms
  • 对话历史 -维护上下文(最后20条消息)

4.安全生产

  • 破坏性操作警告 -删除/缩放操作需要确认
  • 命名空间隔离 -默认情况下,操作范围为当前命名空间
  • 审计日志 -所有kubectl命令都记录到文件中
  • 错误恢复 -妥善处理集群连接问题

快速开始

先决条件

  • 转到1.21+ -对于TUI二进制文件
  • Python 3.10+ -用于后端和MCP服务器
  • kubectl 的 -已配置群集访问权限
  • Gemini API密钥 -从 谷歌人工智能工作室

安装

# Clone repository
git clone https://github.com/Ayushpani/ks-ai.git
cd ks-ai

# Set up Python environment
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Configure API key
cp .env.example .env
# Edit .env and add your GOOGLE_API_KEY

# Build TUI
cd cmd/ks-ai && go build -o ../../ks-ai && cd ../..

跑步

# Terminal 1: Start MCP Server
make mcp-server

# Terminal 2: Start Backend  
make backend

# Terminal 3: Launch TUI
./ks-ai

或者使用组合命令:

make dev  # Starts all services

使用示例

基本查询

> List all pods in default namespace
> Show me deployments that are not fully available
> What services are exposed externally?
> Get logs from the nginx pod

故障排除

> Why is my pod crashing?
> Show pods with high restart counts
> What's consuming the most memory?
> Are there any pending pods?

运营

> Scale the web deployment to 5 replicas
> Describe the redis service
> Get events from the api namespace
> Show me the YAML for deployment/app

键盘快捷键

关键 行动
Enter 发送消息
Tab 在聊天/日志窗格之间切换
↑/↓ 滚动内容
Ctrl+U/D 向上/向下翻页
Ctrl+←/→ 调整窗格大小
Ctrl+Y 将聊天记录复制到剪贴板
Ctrl+L 清除对话历史记录
F1 切换帮助菜单
Ctrl+C 退出

配置

环境变量

变量 描述 默认值
GOOGLE_API_KEY Gemini API密钥 必需
GEMINI_MODEL 主要型号 gemini-2.5-flash
MCP_SERVER_URL MCP服务器端点 http://localhost:8000/sse
BACKEND_PORT 后端API端口 8080

回退模型

编辑 app/backend/app/services/gemini_service.py:

FALLBACK_MODELS = [
    'gemini-2.5-pro',
    'gemini-2.0-flash',
    'gemini-2.0-flash-lite',
    'gemini-1.5-flash',
]

项目结构

ks-ai/
├── cmd/ks-ai/           # Go TUI application
│   └── main.go          # TUI entry point
├── internal/tui/        # TUI components
│   ├── mcp_client.go    # Backend API client
│   └── markdown.go      # Markdown rendering
├── app/
│   ├── backend/         # FastAPI backend
│   │   └── app/
│   │       ├── api/     # REST endpoints
│   │       └── services/# Gemini, Chat services
│   └── frontend/        # React web UI (optional)
├── k8s_mcp_server.py    # MCP server with K8s tools
├── mcp_client.py        # Python MCP client
└── Makefile             # Build commands

为什么这很重要

对于开发者

  • 更快的调试 -无需构建复杂的查询即可获得即时见解
  • 较低的屏障 -新团队成员可以立即操作集群
  • 上下文保留 -AI会记住你的对话,以便后续跟进

适用于SRE/DevOps

  • 事件响应 -在停机期间快速评估集群状态
  • 审计跟踪 -记录所有命令以符合要求
  • 安全护栏 -防止意外损坏

对于团队

  • 知识民主化 -并非每个人都需要成为kubectl专家
  • 一致的操作 -AI遵循最佳实践
  • 按需提供文件 -问“为什么”并得到解释

贡献

欢迎投稿!感兴趣的领域:

  • 其他K8s工具(CRD、Helm等)
  • 支持其他AI提供商(Claude、OpenAI)
  • Web UI改进
  • 多集群支持

许可证

MIT许可证-请参阅 许可证 了解详情。


致谢


内置于❤️ Kubernetes社区