Kubernetes控制平面代理

一个基于Python和FastAPI的轻量级控制平面服务器和客户端,用于在Kubernetes集群中安全执行结构化任务,适用于基础设施自动化、DevOps工作流和AI代理集成。

  • by AbhuSteyn
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 abhusteyn/infra-mcp-agent

使用说明

inframcp代理🚀

用于Kubernetes基础设施自动化的最小控制平面(MCP)服务器和客户端。使用Python和FastAPI构建,专为在AKS或任何Kubernetes集群内安全、结构化的任务执行而设计。


🧠 为什么这个项目存在

现代基础设施团队通常需要轻量级、安全的方法来将内部操作(如扩展部署或重启Pod)暴露给自动化工具、人工智能代理或内部仪表板。该项目通过提供:

  • ✅ 基于FastAPI的MCP服务器,接收结构化JSON任务
  • ✅ 一个安全发送任务的Python客户端
  • ✅ 基于令牌的身份验证
  • ✅ 使用官方Python客户端的Kubernetes原生操作

无论您是在构建内部工具、与LLM集成,还是自动化DevOps工作流程, infra-mcp-agent 为您提供了一个干净、可扩展的控制界面。


📦 特性

特性 描述
scale_deployment 更改部署的副本计数
restart_pod 删除pod以触发重启
get_status 返回吊舱或部署状态
apply_manifest 应用base64编码的Kubernetes YAML清单
🔐 身份验证 基于令牌 Authorization: Bearer <token>
🐳 容器化 在AKS或任何Kubernetes集群中作为pod运行

🧱 建筑

Client → API Gateway → MCP Server → Kubernetes API
  • MCP服务器:接收和路由任务的FastAPI应用程序
  • MCP客户端:发送任务的Python CLI或SDK
  • 认证:基于令牌(存储在Kubernetes Secret或Azure密钥库中)
  • Kubernetes集成:用途 kubernetes 开发包

🚀 入门指南

1.克隆回购

git clone https://github.com/AbhuSteyn/infra-mcp-agent.git
cd infra-mcp-agent

2.构建并推送Docker镜像

docker build -t yourusername/infra-mcp-agent:latest .
docker push yourusername/infra-mcp-agent:latest

3.部署到AKS

kubectl apply -f manifests/deployment.yaml
kubectl apply -f manifests/service.yaml

💡 确保创建一个名为的Kubernetes Secret mcp-secret 使用您的令牌:

kubectl create secret generic mcp-secret --from-literal=token=your-secure-token

🧪 使用MCP客户端

from src.client import send_task

task = {
  "task": "scale_deployment",
  "namespace": "default",
  "deployment_name": "web-api",
  "replicas": 3
}

response = send_task(task, token="your-token")
print(response)

🔧 任务有效载荷示例

✅ 重新启动Pod

{
  "task": "restart_pod",
  "namespace": "default",
  "pod_name": "my-app-pod"
}

📈 扩展部署

{
  "task": "scale_deployment",
  "namespace": "default",
  "deployment_name": "web-api",
  "replicas": 5
}

📦 应用清单

{
  "task": "apply_manifest",
  "manifest": "<base64-encoded-yaml>"
}

🧪 测试

使用模拟运行单元测试:

python -m unittest tests/test_kube_ops.py

🔐 安全说明

  • 所有请求都必须包含有效的承载令牌
  • 根据环境变量验证令牌(MCP_AUTH_TOKEN)
  • 推荐:将令牌存储在Azure密钥库或Kubernetes Secrets中
  • 可选:扩展以支持mTLS或OAuth2

📚 扩展项目

您可以通过以下方式轻松添加新任务:

  1. 在中定义新函数 kube_ops.py
  2. 在中添加路线 task_router.py
  3. 更新客户端负载

📄 许可证

MIT许可证。请随意分叉、扩展和贡献。



您是否需要帮助编写GitHub Actions工作流以自动化测试和Docker构建?或者可以使用示例Helm chart在AKS中更干净地部署它?