使用说明
🚀 DevOps代理:自主SRE编排器
这个 DevOps代理 是一个生产级的自主SRE(站点可靠性工程)助手,旨在管理、诊断和优化Kubernetes和Docker基础设施。它将高级认知规划与稳健的 模型上下文协议(MCP) 执行层。
✨ 特性
🛡️ 生产硬化架构
- 弹性持久性:自动会话恢复和数据库完整性保护(
db.py)即使在繁重的并发负载下,也能确保100%的数据一致性。 - Singleton运输:强化K8和Docker客户端单例,具有连接状态监控功能,可实现高可用性。
- 指数回归:内置RPC级重试逻辑
client_v2.py针对瞬时网络/API故障。
🧠 高级认知SRE逻辑
- 定性诊断:代理人提供专家级裁决(✅ 健康/⚠️ 在呈现原始数据之前。
- 智能上下文管理:分层内存引擎使LLM专注于当前的高优先级目标,同时将臃肿的日志卸载到SQLite。
- 多回合推理:能够进行复杂的链式诊断(例如。, 查找失败的Pod->检查日志->识别OOMKilled->建议增加资源限制).
⚡ 性能优化
- 快速路径编排:执行500毫秒以下的常见发现查询(
list pods,check nodes). - 基准延迟:本地(OpenAI/Gemini)和远程(Ollama/Qwen)LLM主机的预校准预算。
🛠️ 入门指南
1.先决条件
- Python 3.10+
- 访问Kubernetes集群(MicroK8s、Minikube或云管理)
- LLM主持人(Ollama跑步
qwen3.5:9b或推荐更高)
2.安装
# Clone and install in editable mode
pip install -e .
# Configure environment
cp .env.example .env
# Edit .env with your LLM_HOST and K8S settings
3.使用方法
# Launch the CLI TUI
python -m devops_agent.cli
# Run a specific diagnostic query
python -m devops_agent.cli execute "Check cluster node health"
🧪 测试与验证
该系统包括一个全面的验证套件,专为高并发和长时间运行的SRE模拟而设计。
# Run the core stress test (Verifies DB integrity)
pytest tests/test_agent_stress_robust.py
# Run the 12-layer comprehensive E2E pipeline
python scripts/run_comprehensive_e2e.py
🔗 文档
- 📘 [架构和开发人员指南](file:///c:/Users/Nayan/Desktop/agentic-docker/ARCHITECTURE_AND_GUIDE.md)
- 🚀 [外部MCP集成(Claude/OpenCode)](file:///c:/Users/Nayan/Desktop/agentic-docker/EXTERNAL_MCP_GUIDE.md)
- 🧪 [手动测试和基准测试指南](file:///c:/Users/Nayan/Desktop/agentic-docker/MANUAL_TESTING_GUIDE.md)
网络Docker部署
对于网络访问,推荐的部署模式是带有反向代理覆盖的Docker Compose。这为用户提供了一个来源,而不是五个单独的服务URL。
cp .env.example .env
# Edit .env for the remote machine IP, model endpoint, Kubernetes API URL, and ports.
# The reverse proxy defaults to port 3030.
docker compose -f docker-compose.yml -f docker-compose.reverse-proxy.yml build
docker compose -f docker-compose.yml -f docker-compose.reverse-proxy.yml up -d
通过反向代理打开应用程序:
Chat UI: http://<DEVOPS_PUBLIC_HOST>:3030/
K8s Dashboard: http://<DEVOPS_PUBLIC_HOST>:3030/dashboard/
Agent API: http://<DEVOPS_PUBLIC_HOST>:3030/api/
Dashboard API: http://<DEVOPS_PUBLIC_HOST>:3030/dashboard-api/
Network MCP: http://<DEVOPS_PUBLIC_HOST>:3030/mcp
在此模式下,聊天UI和仪表板被构建为调用相同的源路径,例如 /api, /dashboard-api,以及 /dashboard/这意味着正常的浏览器使用不应该遇到CORS问题,因为浏览器只与反向代理源通信。避免直接打开单个服务端口以供常规使用,因为这会重新引入多个来源。
网络MCP保持与代理API断开连接。外部代理连接到 /mcp 通过代理发送自己的Kubernetes服务帐户令牌,如下所示:
Authorization: Bearer <service-account-token>
代理保留 Authorization 头球MCP服务器不存储共享客户端令牌,也不接受查询字符串令牌。
对于未来的DNS/TLS,只需要更改Nginx的compose/config:暴露 443,装载证书文件,添加 listen 443 ssl,配置 ssl_certificate 和 ssl_certificate_key,并可选择将HTTP重定向到HTTPS。应用程序容器和MCP令牌模型不需要更改。
看 docker/README.md 了解详细的Docker部署指南。
