Kubernetes集群检查工具

基于FastMCP的Kubernetes集群检查工具,提供集群状态、资源和日志的全面查询功能,适用于AI助手集成和自动化运维。

  • by jonasgovaerts
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jonasgovaerts/mcp-kubernetes

使用说明

Kubernetes MCP代理

一个基于FastMCP的代理,提供全面的Kubernetes集群检查功能,允许AI助手查询集群状态、资源和日志。

特性

集群监控

  • 获取总体群集运行状况
  • 列出所有节点及其状态和资源利用率
  • 列出群集中的所有命名空间

资源管理

  • 列出Pod(可选命名空间过滤)
  • 列出部署(带可选命名空间筛选)
  • 列出有状态集(带可选命名空间过滤)
  • 列出守护进程集(带可选命名空间筛选)
  • 列出作业(带可选命名空间筛选)
  • 列出cron作业(带可选命名空间筛选)
  • 列出入口资源(可选命名空间过滤)
  • 列出持久卷及其状态、容量和存储类
  • 列出持久卷声明及其状态、请求的大小和使用的存储(可选按命名空间筛选)
  • 列出pod中断预算(可选命名空间过滤)
  • 列出网络附件定义(带可选命名空间筛选)

事件和日志管理

  • 列出最近的群集事件和警告
  • 从具有可配置线路限制的特定Pod中检索日志

用法

基本代理设置

# Start the MCP server
python app/kubernetes_mcp_server.py --host 0.0.0.0 --port 8000

与AI助手集成

配置您的AI助手以连接到:

http://localhost:8000/mcp

可用工具

  1. get_cluster_status() -获取总体群集状态
  2. list_nodes() -列出所有节点及其状态和资源
  3. list_namespaces() -列出所有命名空间
  4. list_pods(namespace) -列出Pod(可选按命名空间过滤)
  5. list_deployments(namespace) -列出部署(可选按命名空间筛选)
  6. list_statefulsets(namespace) -列出有状态集
  7. list_daemonsets(namespace) -列出守护程序集
  8. list_jobs(namespace) -列出作业
  9. list_cronjobs(namespace) -列出cron作业
  10. list_ingresses(namespace) -列出入口资源
  11. list_events(namespace) -列出最近的事件
  12. get_pod_logs(pod_name, namespace, tail_lines) -从特定pod获取日志
  13. list_persistent_volumes() -列出所有持久卷及其状态、容量和存储类
  14. list_persistent_volume_claims(namespace) -列出持久卷声明及其状态、请求的大小和使用的存储(可选按命名空间筛选)
  15. list_pod_disruption_budgets(namespace) -列出pod中断预算(可选按命名空间过滤)
  16. list_network_attachment_definitions(namespace) -列出CNI中的网络附件定义(可选按命名空间筛选)

配置

可以使用命令行参数配置代理:

  • --host:要绑定的主机(默认值:0.0.0.0)
  • --port:要侦听的端口(默认值:8000)
  • --kubeconfig:kubeconfig文件的路径

安全考虑

  • 代理通过HTTP接口公开集群信息和日志
  • 确保适当的网络安全措施到位
  • 为Kubernetes服务帐户适当使用RBAC权限
  • 考虑在生产环境中使用HTTPS

示例用法

# Start the server
python app/kubernetes_mcp_server.py --host 0.0.0.0 --port 8000

# In another terminal, you can test with curl
curl http://localhost:8000/tools/get_cluster_status

需求

  • Python 3.7+
  • Kubernetes集群访问
  • requirements.txt或Pipfile中列出的必需Python包