使用说明
项目简介
k8s-pilot 是一个轻量级、基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为大型语言模型(LLM)客户端提供与 Kubernetes 集群交互的能力。它通过 표준화된 方式暴露 Kubernetes 资源信息和操作接口,使 LLM 能够理解集群状态并执行管理任务。
主要功能点
- 多集群管理: 支持无缝切换和操作配置在 '~/.kube/config' 中的多个 Kubernetes 集群。
- 丰富的资源操作: 提供对常见 Kubernetes 资源的 CRUD(创建、读取、更新、删除)操作,包括:
- 应用类:Deployments, StatefulSets, DaemonSets, ReplicaSets, Pods
- 服务与网络:Services, Ingresses
- 配置与存储:ConfigMaps, Secrets, PersistentVolumes (PVs), PersistentVolumeClaims (PVCs)
- 访问控制:Roles, ClusterRoles, ServiceAccounts
- 集群级别:Namespaces, Nodes
- 命名空间管理: 支持创建、删除、查看命名空间详情、列出命名空间内资源以及设置/获取资源配额。
- 节点管理: 支持查看节点详情、获取节点上的 Pods、对节点进行标记 (label)、污点 (taint) 操作,以及 cordon/uncordon(标记为不可调度/可调度)。
- Pod 日志查看: 支持获取指定 Pod 或其容器的日志。
安装步骤
- 确保已安装 Python 3.13 或更高版本。
- 安装 'uv' 包管理器(如果尚未安装):
- macOS: 'brew install uv'
- Linux: 'curl -LsSf https://astral.sh/uv/install.sh | sh'
- 克隆 k8s-pilot 仓库: 'git clone https://github.com/bourbonkk/k8s-pilot.git'
- 进入项目目录: 'cd k8s-pilot'
- 使用 'uv' 和 'mcp' 启动服务器: 'uv run --with mcp[cli] mcp run k8s_pilot.py'
服务器启动后,会通过标准输入/输出 (stdio) 协议与连接的 MCP 客户端进行通信。
服务器配置 (供MCP客户端参考)
k8s-pilot MCP 服务器启动后,MCP 客户端(如支持 MCP 的 LLM 界面)需要配置连接信息才能使用它。配置通常以 JSON 格式提供,其中包含启动服务器所需的命令和参数。
以下是配置 k8s-pilot 服务器供 MCP 客户端使用的关键信息:
- 服务器名称: 可以自定义,例如 'k8s_pilot'。
- 启动命令 (command): 用于启动 k8s-pilot 服务器的可执行文件路径,这里是 'uv'。
- 参数 (args): 传递给启动命令的参数列表,按顺序排列:
- '--directory': 指定服务器代码所在的目录路径。您需要将 '<path-to-cloned-repo>' 替换为您实际克隆 'k8s-pilot' 仓库的路径。
- 'run': 'uv' 的子命令,用于运行 Python 脚本。
- '--with': 指定运行所需的额外依赖,这里是 'mcp[cli]'。
- 'mcp': 'uv run' 中调用 'mcp' 包的命令。
- 'run': 'mcp' 包的子命令,用于启动 MCP 服务器。
- 'k8s_pilot.py': 服务器的主脚本文件。
客户端会使用这些信息来启动 k8s-pilot 进程并建立 MCP 连接。
基本使用方法
一旦 MCP 客户端成功连接到 k8s-pilot 服务器,您可以通过与 LLM 进行自然语言交互来管理 Kubernetes。例如:
- 询问服务器支持哪些功能或资源(LLM 会通过 MCP 协议查询服务器的能力)。
- 请求列出特定集群或命名空间下的 Pods、Deployments 等资源。
- 要求 LLM 执行某个操作,例如“在 default 命名空间创建一个名为 my-nginx 的 Deployment,使用 nginx:latest 镜像和 3 个副本”。LLM 会解析您的请求,调用 k8s-pilot 提供的相应工具 ('deployment_create'),并向您报告结果。
- 切换当前操作的 Kubernetes 集群上下文。
k8s-pilot 负责将 LLM 的自然语言请求转化为对 Kubernetes API 的具体调用,并将结果返回给 LLM,从而实现 AI 驱动的 Kubernetes 管理。
信息
分类
开发者工具