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许可证-请参阅 许可证 了解详情。
______________________________________________________________________
致谢
- 珍珠奶茶 -TUI框架
- 谷歌双子座 -人工智能模型
- FastMCP -MCP实施
- Kubernetes Python客户端
______________________________________________________________________
内置于❤️ Kubernetes社区
