关于 k8s-pilot
k8s-pilot 是用于集中管理多个 Kubernetes 集群的服务,面向需要检查或操作集群资源的用户。它支持只读模式、上下文切换和引导式操作提示词。
主要功能
- 01在多个集群间切换上下文
- 02创建、更新、删除和查看资源
- 03只读模式阻止写入操作
- 04通过 Streamable HTTP 远程访问
- 05提示词引导常见 Kubernetes 操作
适用场景
- 01只检查生产集群而不修改资源
- 02管理多个集群中的资源
- 03通过引导提示词排查 Pod 故障
- 04检查集群健康状况或规划命名空间清理
MCP 相关
向 MCP 客户端提供 Kubernetes 资源操作和引导式提示词,并支持 stdio 与 Streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Kubernetes 集群的中央驾驶舱 ✈️✈️
k8s_pilot 是一款轻量级的集中式控制平面服务,可同时管理多个 Kubernetes 集群。
借助强大的工具和直观的 API,你可以在一个驾驶舱中观察和控制所有集群。
🚀 概述
- 🔄 支持多集群上下文切换
- 🔧 支持对大多数常见 Kubernetes 资源执行 CRUD 操作
- 🔒 提供只读模式,安全地检查集群
- ⚙️ 由 MCP 提供支持,可用于 Claude AI 等
- 🌐 支持 Streamable HTTP 传输,方便远程访问
- 🤖 提供用于引导操作的 MCP 提示词
- 📝 为写入操作提供上下文感知日志记录
🧰 前置条件
- Python 3.13 或更高版本
uv包管理器- 可访问 Kubernetes 集群(
~/.kube/config或集群内配置)
# Install uv (if not installed)
# For MacOS
brew install uv
# For Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
安装
# Clone the repository
git clone https://github.com/bourbonkk/k8s-pilot.git
cd k8s-pilot
# Launch with uv + MCP
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py
🆕 v2.0 新功能
- Streamable HTTP 传输:通过 HTTP 管理远程集群(除 stdio 外)
- MCP 提示词:内置常见 K8s 操作提示词模板
- 上下文感知日志记录:现在,写入操作会通过 MCP 上下文报告进度
- 错误修复:修复 Ingress 和 RBAC 资源缺少 API 客户端的问题
- 安全性:为节点修改操作添加只读检查
- Dockerfile:采用
uv包管理器进行现代化改造,加快构建速度
使用方法
普通模式(完全访问权限)
# Start with full read/write access
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py
只读模式(安全检查)
# Start in readonly mode - only read operations allowed
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py --readonly
Streamable HTTP 模式(远程访问)
# Start with Streamable HTTP transport for remote access
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py --transport streamable-http
命令行选项
# Show help
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py --help
通过 Docker 运行
你可以直接使用已发布的 Docker 镜像运行 k8s-pilot,无需在本地安装 uv。
请务必挂载 ~/.kube/config,以便容器访问你的集群。
docker run -i --rm \
-v ~/.kube/config:/root/.kube/config \
ghcr.io/bourbonkk/k8s-pilot:latest
只读模式
--readonly 标志会启用安全模式,阻止对 Kubernetes 集群执行任何写入操作。适用于以下场景:
- 集群检查,无需担心意外更改
- 审计场景,需要查看但不修改
- 学习环境,可以安全地进行探索
- 生产环境监控,确保不会进行任何修改
受保护的操作(只读模式下会被阻止)
pod_create、pod_update、pod_deletedeployment_create、deployment_update、deployment_deleteservice_create、service_update、service_deleteconfigmap_create、configmap_update、configmap_deletesecret_create、secret_update、secret_deletenamespace_create、namespace_delete- 所有其他创建、更新和删除操作
允许的操作(始终可用)
pod_list、pod_detail、pod_logsdeployment_list、deployment_getservice_list、service_getconfigmap_list、configmap_getsecret_list、secret_getnamespace_list、namespace_get- 所有其他列出和获取操作
MCP 提示词
k8s-pilot 内置了适用于常见操作的提示词模板:
| 提示词 | 描述 |
|---|---|
troubleshoot_pod | Pod 故障排查分步指南 |
deployment_guide | 引导式应用部署工作流 |
cluster_health_check | 全面的集群健康评估 |
namespace_cleanup | 安全清理命名空间的流程 |
在 Claude Desktop 中使用
使用此配置,即可在 Claude 中运行 k8s_pilot MCP 服务:
{
"mcpServers": {
"k8s_pilot": {
"command": "uv",
"args": [
"--directory",
"<path-to-cloned-repo>/k8s-pilot",
"run",
"--with",
"mcp[cli]>=1.28.0,<2",
"python",
"k8s_pilot.py"
]
}
}
}
若要使用只读模式,请采用以下配置:
{
"mcpServers": {
"k8s_pilot_readonly": {
"command": "uv",
"args": [
"--directory",
"<path-to-cloned-repo>/k8s-pilot",
"run",
"--with",
"mcp[cli]>=1.28.0,<2",
"python",
"k8s_pilot.py",
"--readonly"
]
}
}
}
若要使用 Docker,请采用以下配置(将 YOUR_USERNAME 替换为你实际的 Mac 用户名):
{
"mcpServers": {
"k8s_pilot_docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/Users/YOUR_USERNAME/.kube/config:/root/.kube/config",
"ghcr.io/bourbonkk/k8s-pilot:latest"
]
}
}
}
将 <path-to-cloned-repo> 替换为你克隆仓库的实际目录。
场景
使用 nginx:latest 镜像在 pypy 命名空间中创建 Deployment,并创建一个与之连接的 Service。
核心功能
多集群管理
- 无缝连接多个 Kubernetes 集群
- 执行上下文感知操作
- 通过 MCP 提示词轻松切换集群
资源控制
- 查看、创建、更新和删除:
- Deployments、Services、Pods
- ConfigMaps、Secrets、Ingresses
- StatefulSets、DaemonSets
- Roles、ClusterRoles
- PersistentVolumes 和 Claims
命名空间操作
- 创建/删除命名空间
- 列出命名空间中的所有资源
- 管理标签和资源配额
节点管理
- 查看节点详情和状态
- 封锁/解除封锁节点,为节点添加标签/污点
- 列出每个节点上的 Pod
许可证
本项目采用 MIT 许可证。详情请参阅 许可证 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。