自然语言K8S管理器

一种通过自然语言命令启用大型语言模型(LLMs)管理 Kubernetes 集群的服务器,它将 kubectl 操作封装起来,为常见的 Kubernetes 任务提供简化的接口。

cloud-platformsvirtualization

628 查看 · 2026-07-07 更新

简介

一种通过自然语言命令启用大型语言模型(LLMs)管理 Kubernetes 集群的服务器,它将 kubectl 操作封装起来,为常见的 Kubernetes 任务提供简化的接口。

简介

一种通过自然语言命令启用大型语言模型(LLMs)管理 Kubernetes 集群的服务器,它将 kubectl 操作封装起来,为常见的 Kubernetes 任务提供简化的接口。

MCP Kubernetes 服务器

smithery 徽章

这是一个用于 Kubernetes 的 MCP(模型上下文协议)服务器,通过与大语言模型 (LLMs) 的交互来控制 Kubernetes 集群。

概述

此客户端允许您通过 MCP 工具执行常见的 Kubernetes 操作。它封装了 kubectl 命令,提供了一个简单的界面来管理 Kubernetes 资源。模型上下文协议 (MCP) 使语言模型与 Kubernetes 操作之间的无缝交互成为可能。

什么是 MCP?

模型上下文协议 (MCP) 是一个框架,使语言模型能够以结构化的方式与外部工具和服务进行交互。它提供了:

  • 向语言模型暴露功能的标准方式
  • 操作的上下文管理
  • 工具发现和文档
  • 模型与工具之间类型安全的交互

使用示例

  • 在 production 命名空间中为我创建一个名为 nginx-app、镜像为 nginx:latest 的新部署,并设置 3 个副本。
  • 将 production 命名空间中的 nginx-app 部署更新到版本 1.19。
  • 将 production 命名空间中的 nginx-app 部署扩展到 5 个副本。
  • 获取 production 命名空间中的所有 pod。
  • 获取集群中的所有命名空间。
  • 获取集群中的所有节点。
  • 获取集群中的所有服务。
  • 获取集群中的所有部署。
  • 获取集群中的所有作业。
  • 获取集群中的所有定时任务。
  • 获取集群中的所有有状态集。
  • 获取集群中的所有守护进程集。
  • 当前上下文是什么。
  • 列出所有上下文。
  • 切换到上下文
  • 获取 production 命名空间中 的日志。
  • 获取 production 命名空间中的事件。
  • 在 production 命名空间中将 key1=value1 注解添加到
  • 从 production 命名空间中的 移除注解 key1。
  • 在 production 命名空间中将标签 key1=value1 添加到
  • 从 production 命名空间中的 移除标签 key1。
  • 在 production 命名空间中将 nginx-app 部署暴露在端口 80 上。
  • 将 production 命名空间中名为 的 pod、deployment 或 service 端口转发到本地端口 8080。
  • 删除 production 命名空间中的 pod、deployment、service、job、cronjob、statefulset 或 daemonset 名为 的资源。

即将推出的功能

  • 创建集群角色。
  • 删除集群角色。
  • 创建集群角色绑定。
  • 删除集群角色绑定。
  • 创建命名空间。
  • 删除命名空间。
  • 创建服务账户。
  • 删除服务账户。
  • 创建角色。
  • 删除角色。
  • 创建角色绑定。
  • 删除角色绑定。

大语言模型集成

此 MCP 客户端旨在与大语言模型 (LLMs) 无缝协作。这些函数使用 @mcp.tool() 进行装饰,使其可以通过模型上下文协议框架被 LLMs 访问。

示例 LLM 提示

LLM可以通过自然语言与您的Kubernetes集群进行交互。以下是一些示例提示:

  • "在生产命名空间中创建一个具有3个副本的新nginx部署"
  • "将nginx-app部署扩展到5个副本"
  • "将nginx-app的镜像更新到1.19版本"

LLM会解释这些自然语言请求,并使用正确的参数调用相应的MCP函数。

LLM集成的好处

  1. 自然语言界面:使用对话语言管理Kubernetes资源
  2. 减少命令复杂性:无需记住确切的kubectl语法
  3. 防止错误:LLM可以验证输入并提供有用的错误消息
  4. 上下文感知:LLM可以在多个操作中保持上下文
  5. 结构化交互:MCP确保LLM与工具之间的类型安全和文档化的交互

要求

  • 通过kubectl配置的Kubernetes集群访问
  • Python 3.x
  • 已安装并配置好的MCP框架

安全注意事项

当使用此客户端与LLM一起工作时,请确保:

  • 您的Kubernetes集群有适当的访问控制
  • MCP服务器运行在一个安全环境中
  • API访问已正确认证和授权

与Claude Desktop一起使用

{ "mcpServers": { "Kubernetes": { "command": "uv", "args": [ "--directory", "~/mcp/mcp-k8s-server", "run", "kubernetes.py" ] } } }

贡献

我们欢迎对MCP Kubernetes Server的贡献!如果您想贡献:

  1. 分叉仓库
  2. 为您的功能创建一个新的分支(git checkout -b feature/amazing-feature
  3. 进行更改
  4. 根据需要编写或更新测试
  5. 提交您的更改(git commit -m 'Add some amazing feature'
  6. 将您的分支推送到远程仓库(git push origin feature/amazing-feature
  7. 打开一个拉取请求

对于重大更改,请先打开一个问题来讨论您想要做的变更。

通过Smithery安装

要通过Smithery自动安装适用于Claude Desktop的Kubernetes Server:

npx -y @smithery/cli install @abhijeetka/mcp-k8s-server --client claude

服务配置

[{'mcpServers': {'Kubernetes': {'args': ['--directory', '~/mcp/mcp-k8s-server', 'run', 'kubernetes.py'], 'command': 'uv'}}}]

来源