Ceph集群管理服务

一个用于在Kubernetes环境中管理Rook Ceph存储集群的模型上下文协议(MCP)服务器,提供集群管理、存储资源管理和故障排除功能。

  • by shreyanshjain7174
  • JavaScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 shreyanshjain7174/rook-ceph-mcp

使用说明

Rook Ceph MCP服务器

用于管理Kubernetes环境中Rook Ceph存储集群的模型上下文协议(MCP)服务器。

特性

  • 群集管理:列出并监控Ceph集群
  • 存储资源:管理块池、文件系统和对象存储
  • 清单模板:访问预先配置的公共资源的YAML模板
  • Kubernetes集成:本机Kubernetes API集成
  • 故障排除:用于群集设置和故障排除的内置提示

安装

地方发展(标准交通)

  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build
  1. 启动服务器:
npm run start:stdio

云主机(HTTP传输)

  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build
  1. 启动HTTP服务器:
npm start

Docker部署

  1. 构建Docker镜像:
docker build -t rook-ceph-mcp .
  1. 运行容器:
docker run -p 3000:3000 rook-ceph-mcp

配置

服务器需要访问安装了Rook Ceph的Kubernetes集群。它使用默认的kubeconfig进行身份验证。

先决条件

  • 安装了Rook Ceph操作符的Kubernetes集群
  • kubectl配置了集群访问权限
  • Node.js 18+和npm

可用工具

集群操作

  • list_clusters -列出所有Ceph集群
  • get_cluster_status -获取特定集群的详细状态

存储资源

  • list_block_pools -列出所有Ceph区块池
  • list_filesystems -列出所有Ceph文件系统
  • list_object_stores -列出所有Ceph对象存储

资源管理

  • create_block_pool -创建一个新的Ceph块池
  • delete_resource -删除Rook Ceph资源

可用资源

服务器为以下内容提供YAML清单模板:

  • rook-ceph://manifests/cluster -Ceph集群配置
  • rook-ceph://manifests/block-pool -块池配置
  • rook-ceph://manifests/filesystem -文件系统配置
  • rook-ceph://manifests/object-store -对象存储配置

可用提示

  • setup_cluster -分步集群设置指南
  • troubleshoot_cluster -群集故障排除帮助

示例用法

列出所有集群

{
  "tool": "list_clusters",
  "arguments": {
    "namespace": "rook-ceph"
  }
}

创建块池

{
  "tool": "create_block_pool",
  "arguments": {
    "name": "my-pool",
    "namespace": "rook-ceph",
    "replicated": {
      "size": 3
    }
  }
}

获取群集状态

{
  "tool": "get_cluster_status",
  "arguments": {
    "name": "rook-ceph",
    "namespace": "rook-ceph"
  }
}

存储库结构

基于原始的git存储库规范,该项目将MCP上下文作为YAML在不同分支中的体现进行维护:

  • main -生产环境
  • staging -分期上下文
  • dev -发展背景

每个分支包含:

├── cluster-manifests/
│   ├── ceph-cluster.yaml
│   ├── object-store.yaml
│   └── block-pool.yaml
├── apps/
│   ├── rook-operator.yaml
│   ├── monitoring-stack.yaml
│   └── security.yaml
├── kustomization.yaml
└── README.md

API端点(HTTP模式)

在HTTP模式下运行时,服务器会公开以下端点:

  • GET /health -健康检查
  • GET /mcp/tools -列出可用工具
  • POST /mcp/call-tool -执行工具
  • GET /mcp/resources -列出可用资源
  • POST /mcp/read-resource -阅读资源
  • GET /mcp/prompts -列出可用提示
  • POST /mcp/get-prompt -获得提示

发展

建筑

npm run build

开发模式(stdio)

npm run dev:stdio

开发模式(HTTP)

npm run dev

测试

npm test

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件

支持

对于问题和疑问:

  • 检查服务器内置的故障排除提示
  • 查看Rook Ceph文档
  • 将问题提交到项目存储库

安全

此服务器需要Kubernetes集群访问权限,应使用适当的RBAC权限。在生产环境中部署时,始终遵循安全最佳实践。