k8m

k8m

提供 MCP 多集群 Kubernetes 管理和运维,具有管理界面、日志记录以及近 50 个内置工具,涵盖常见的 DevOps 和开发场景。 支持标准和 CRD 资源。

Category
访问服务器

README

k8m

English | 中文

k8m

k8m 是一款AI驱动的 Mini Kubernetes AI Dashboard 轻量级控制台工具,专为简化集群管理设计。它基于 AMIS 构建,并通过 kom 作为 Kubernetes API 客户端,k8m 内置了 Qwen2.5-Coder-7B,支持deepseek-ai/DeepSeek-R1-Distill-Qwen-7B模型 模型交互能力,同时支持接入您自己的私有化大模型。

演示DEMO

DEMO 用户名密码 demo/demo

主要特点

  • 迷你化设计:所有功能整合在一个单一的可执行文件中,部署便捷,使用简单。
  • 简便易用:友好的用户界面和直观的操作流程,让 Kubernetes 管理更加轻松。
  • 高效性能:后端采用 Golang 构建,前端基于百度 AMIS,保证资源利用率高、响应速度快。
  • AI驱动融合:基于ChatGPT实现划词解释、资源指南、YAML属性自动翻译、Describe信息解读、日志AI问诊、运行命令推荐,并集成了 k8s-gpt功能,实现中文展现,为管理k8s提供智能化支持。
  • MCP集成:可视化管理MCP,实现大模型调用Tools,内置k8s多集群MCP工具49种,可组合实现超百种集群操作,可作为MCP Server 供其他大模型软件使用。轻松实现大模型管理k8s。支持mcp.so主流服务。
  • MCP权限打通:多集群管理权限与MCP大模型调用权限打通,一句话概述:谁使用大模型,就用谁的权限执行MCP。安全使用,无后顾之忧,避免操作越权。
  • 多集群管理:自动识别集群内部使用InCluster模式,配置kubeconfig路径后自动扫描同级目录下的配置文件,同时注册管理多个集群。
  • Pod 文件管理:支持 Pod 内文件的浏览、编辑、上传、下载、删除,简化日常操作。
  • Pod 运行管理:支持实时查看 Pod 日志,下载日志,并在 Pod 内直接执行 Shell 命令。
  • CRD 管理:可自动发现并管理 CRD 资源,提高工作效率。
  • Helm 市场:支持Helm自由添加仓库,一键安装、卸载、升级 Helm 应用。
  • 跨平台支持:兼容 Linux、macOS 和 Windows,并支持 x86、ARM 等多种架构,确保多平台无缝运行。
  • 完全开源:开放所有源码,无任何限制,可自由定制和扩展,可商业使用。

k8m 的设计理念是“AI驱动,轻便高效,化繁为简”,它帮助开发者和运维人员快速上手,轻松管理 Kubernetes 集群。

<img width="600" alt="image" src="https://github.com/user-attachments/assets/0951d6c1-389c-49cb-b247-84de15b6ec0e" />

运行

  1. 下载:从 GitHub 下载最新版本。
  2. 运行:使用 ./k8m 命令启动,访问http://127.0.0.1:3618
  3. 参数
Usage of ./k8m:
      --admin-password string            管理员密码 (default "123456")
      --admin-username string            管理员用户名 (default "admin")
      --any-select                       是否开启任意选择划词解释,默认开启 (default true)
      --print-config                     是否打印配置信息 (default false)
  -k, --chatgpt-key string               大模型的自定义API Key (default "sk-xxxxxxx")
  -m, --chatgpt-model string             大模型的自定义模型名称 (default "Qwen/Qwen2.5-7B-Instruct")
  -u, --chatgpt-url string               大模型的自定义API URL (default "https://api.siliconflow.cn/v1")
  -d, --debug                            调试模式
      --in-cluster                       是否自动注册纳管宿主集群,默认启用
      --jwt-token-secret string          登录后生成JWT token 使用的Secret (default "your-secret-key")
  -c, --kubeconfig string                kubeconfig文件路径 (default "/root/.kube/config")
      --kubectl-shell-image string       Kubectl Shell 镜像。默认为 bitnami/kubectl:latest,必须包含kubectl命令 (default "bitnami/kubectl:latest")
      --log-v int                        klog的日志级别klog.V(2) (default 2)
      --login-type string                登录方式,password, oauth, token等,default is password (default "password")
      --node-shell-image string          NodeShell 镜像。 默认为 alpine:latest,必须包含`nsenter`命令 (default "alpine:latest")
  -p, --port int                         监听端口 (default 3618)
      --sqlite-path string               sqlite数据库文件路径, (default "./data/k8m.db")
  -s, --mcp-server-port int              MCP Server 监听端口,默认3619 (default 3619)
  -v, --v Level                          klog的日志级别 (default 2)

ChatGPT 配置指南

内置GPT

从v0.0.8版本开始,将内置GPT,无需配置。 如果您需要使用自己的GPT,请参考以下步骤。

环境变量配置

需要设置环境变量,以启用ChatGPT。

export OPENAI_API_KEY="sk-XXXXX"
export OPENAI_API_URL="https://api.siliconflow.cn/v1"
export OPENAI_MODEL="Qwen/Qwen2.5-7B-Instruct"

ChatGPT 状态调试

如果设置参数后,依然没有效果,请尝试使用./k8m -v 6获取更多的调试信息。 会输出以下信息,通过查看日志,确认是否启用ChatGPT。

ChatGPT 开启状态:true
ChatGPT 启用 key:sk-hl**********************************************, url:https: // api.siliconflow.cn/v1
ChatGPT 使用环境变量中设置的模型:Qwen/Qwen2.5-7B-Instruc

ChatGPT 账户

本项目集成了github.com/sashabaranov/go-openaiSDK。 国内访问推荐使用硅基流动的服务。 登录后,在https://cloud.siliconflow.cn/account/ak创建API_KEY

k8m 支持环境变量设置

以下是k8m支持的环境变量设置参数及其作用的表格:

环境变量 默认值 说明
PORT 3618 监听的端口号
MCP_SERVER_PORT 3619 内置多集群k8s MCP Server监听的端口号
KUBECONFIG ~/.kube/config kubeconfig 文件路径
OPENAI_API_KEY "" 大模型的 API Key
OPENAI_API_URL "" 大模型的 API URL
OPENAI_MODEL Qwen/Qwen2.5-7B-Instruct 大模型的默认模型名称,如需DeepSeek,请设置为deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
LOGIN_TYPE "password" 登录方式(如 password, oauth, token
ADMIN_USERNAME "admin" 管理员用户名
ADMIN_PASSWORD "123456" 管理员密码
DEBUG "false" 是否开启 debug 模式
LOG_V "2" log输出日志,同klog用法
JWT_TOKEN_SECRET "your-secret-key" 用于 JWT Token 生成的密钥
KUBECTL_SHELL_IMAGE bitnami/kubectl:latest kubectl shell 镜像地址
NODE_SHELL_IMAGE alpine:latest Node shell 镜像地址
SQLITE_PATH ./data/k8m.db 持久化数据库地址,默认sqlite数据库,文件地址./data/k8m.db
IN_CLUSTER "true" 是否自动注册纳管宿主集群,默认启用
ANY_SELECT "true" 是否开启任意选择划词解释,默认开启 (default true)
PRINT_CONFIG "false" 是否打印配置信息

这些环境变量可以通过在运行应用程序时设置,例如:

export PORT=8080
export OPENAI_API_KEY="your-api-key"
export GIN_MODE="release"
./k8m

注意:环境变量会被启动参数覆盖。

容器化k8s集群方式运行

使用KinDMiniKube 安装一个小型k8s集群

KinD方式

  • 创建 KinD Kubernetes 集群
brew install kind
  • 创建新的 Kubernetes 集群:
kind create cluster --name k8sgpt-demo

将k8m部署到集群中体验

安装脚本

kubectl apply -f https://raw.githubusercontent.com/weibaohui/k8m/refs/heads/main/deploy/k8m.yaml
  • 访问: 默认使用了nodePort开放,请访问31999端口。或自行配置Ingress http://NodePortIP:31999

修改配置

首选建议通过修改环境变量方式进行修改。 例如增加deploy.yaml中的env参数

内置MCP Server 使用说明

服务端点,可开发供其他AI工具使用

MCP程序使用3619端口。NodePort使用31919端口。 如果二进制方式直接启动,那么访问地址为http://ip:3619/sse 如果集群方式启动,则访问地址为则访问地址为http://nodeIP:31919/sse

集群管理范围

内置MCP Server 管理范围与k8m 纳管的集群范围一致。 界面内已连接的集群均可使用。

内置MCP Server 配置说明

MCP工具列表(49种)

类别 方法 描述
集群管理(1) list_clusters 列出所有已注册的Kubernetes集群
部署管理(12) scale_deployment 扩缩容Deployment
restart_deployment 重启Deployment
stop_deployment 停止Deployment
restore_deployment 恢复Deployment
update_tag_deployment 更新Deployment镜像标签
rollout_history_deployment 查询Deployment升级历史
rollout_undo_deployment 回滚Deployment
rollout_pause_deployment 暂停Deployment升级
rollout_resume_deployment 恢复Deployment升级
rollout_status_deployment 查询Deployment升级状态
hpa_list_deployment 查询Deployment的HPA列表
list_deployment_pods 获取Deployment管理的Pod列表
动态资源管理(含CRD,8) get_k8s_resource 获取k8s资源
describe_k8s_resource 描述k8s资源
delete_k8s_resource 删除k8s资源
list_k8s_resource 列表形式获取k8s资源
list_k8s_event 列表形式获取k8s事件
patch_k8s_resource 更新k8s资源,以JSON Patch方式更新
label_k8s_resource 为k8s资源添加或删除标签
annotate_k8s_resource 为k8s资源添加或删除注解
节点管理(8) taint_node 为节点添加污点
untaint_node 为节点移除污点
cordon_node 为节点设置Cordon
uncordon_node 为节点取消Cordon
drain_node 为节点执行Drain
get_node_resource_usage 查询节点的资源使用情况
get_node_ip_usage 查询节点上Pod IP资源使用情况
get_node_pod_count 查询节点上的Pod数量
Pod 管理(14) list_pod_files 列出Pod文件
list_all_pod_files 列出Pod所有文件
delete_pod_file 删除Pod文件
upload_file_to_pod 上传文件到Pod内,支持传递文本内容,存储为Pod内文件
get_pod_logs 获取Pod日志
run_command_in_pod 在Pod中执行命令
get_pod_linked_service 获取Pod关联的Service
get_pod_linked_ingress 获取Pod关联的Ingress
get_pod_linked_endpoints 获取Pod关联的Endpoints
get_pod_linked_pvc 获取Pod关联的PVC
get_pod_linked_pv 获取Pod关联的PV
get_pod_linked_env 通过在pod内运行env命令获取Pod运行时环境变量
get_pod_linked_env_from_yaml 通过Pod yaml定义获取Pod运行时环境变量
get_pod_resource_usage 获取Pod的资源使用情况,包括CPU和内存的请求值、限制值、可分配值和使用比例
YAML管理(2) apply_yaml 应用YAML资源
delete_yaml 删除YAML资源
存储管理(3) set_default_storageclass 设置默认StorageClass
get_storageclass_pvc_count 获取StorageClass下的PVC数量
get_storageclass_pv_count 获取StorageClass下的PV数量
Ingress管理(1) set_default_ingressclass 设置默认IngressClass

AI工具集成

通用配置文件

适合MCP工具集成,如Cursor、Claude Desktop、Windsurf等,此外也可以使用这些软件的UI操作界面进行添加。

{
  "mcpServers": {
    "kom": {
      "type": "sse",
      "url": "http://IP:9096/sse"
    }
  }
}

Claude Desktop

  1. 打开Claude Desktop设置面板
  2. 在API配置区域添加MCP Server地址
  3. 启用SSE事件监听功能
  4. 验证连接状态

Cursor

  1. 进入Cursor设置界面
  2. 找到扩展服务配置选项
  3. 添加MCP Server的URL(例如:http://localhost:3619/sse)

Windsurf

  1. 访问配置中心
  2. 设置API服务器地址

MCP常见问题

  1. 确保MCP Server正常运行且端口可访问
  2. 检查网络连接是否正常
  3. 验证SSE连接是否成功建立
  4. 查看工具日志以排查连接问题,MCP执行失败会有报错记录。

更新日志

v0.0.75更新

  1. 分离用户操作界面、平台管理界面。平台管理界面新增一个平台管理菜单。 1.1 用户多集群切换,保留切换、连接功能: 输入图片说明 1.2 管理员操作多集群,新增断开功能: 输入图片说明 1.3 集群管理新增已授权页面,展示集群下所有的授权用户 输入图片说明 1.4 用户管理新增授权页面,查看某用户所有的授权集群 输入图片说明
  2. 新增权限可设置ns,集群授权后,可补充ns,默认为不限制,填写后,将限制用户活动范围。 输入图片说明 输入图片说明
  3. 新增参数配置页面。 启动后会先加载环境变量、env文件、页面配置,依次覆盖。最终页面配置为准。 输入图片说明
  4. 新增资源、副本数调整页面 输入图片说明 输入图片说明

V0.0.73 更新

  1. 新增Deploy探针管理页面 输入图片说明
  2. 新增MCP多集群不传值时提示,只有一个集群时可以省去集群名称 输入图片说明
  3. 修复未授权用户看到一个默认集群的问题

V0.0.72 更新

  1. MCP 大模型调用权限上线,一句话概述:谁使用大模型,就用谁的权限执行MCP 输入图片说明

V0.0.70 更新

  1. 权限管理调整:按集群进行权限隔离 输入图片说明

v0.0.67 更新

  1. 新增:MCP查询事件工具 输入图片说明
  2. 新增:MCP查询注册集群工具 输入图片说明
  3. 新增:MCP查询事件工具 输入图片说明
  4. 增强:列表查询资源支持label ,如app=k8m 输入图片说明
  5. 增强:MCP服务器增加快捷开启关闭按钮 输入图片说明

V0.0.66更新

  1. 新增MCP支持。
  2. 内置支持k8s多集群操作:
    1. list_k8s_resource
    2. get_k8s_resource
    3. delete_k8s_resource
    4. describe_k8s_resource
    5. get_pod_logs

v0.0.64 更新

  1. 增加MCP支持 输入图片说明 输入图片说明 输入图片说明

v0.0.62 更新

  1. 划词解释增加全屏按钮 解决部分情况下解释内容非常多,查看不方便,以及滚动条不能完整滚动的问题。 输入图片说明 输入图片说明

v0.0.61 更新

  1. 新增2FA两步验证 启用后,登录时需填写验证码,增强安全性 输入图片说明
  2. InCluster运行模式增加开关 默认开启,可设置环境变量显式关闭。按需开启。
  3. 优化资源用量显示逻辑 未设置资源用量,在k8s中属于最低保障等级。界面显示进度条调整为红色100%,提醒管理员关注。 资源用量

v0.0.60更新

  1. 增加helm 常用仓库 输入图片说明 输入图片说明
  2. Namespace增加LimitRange、ResourceQuota快捷菜单 输入图片说明 输入图片说明
  3. 增加InCluster模式开关 默认开启InCluster模式,如需关闭,可以注入环境变量,或修改配置文件,或修改命令行参数

v0.0.53更新

  1. 日志查看支持颜色,如果输出console的时候带有颜色,那么在pod 日志查看时就可以显示。 输入图片说明
  2. Helm功能上线 2.1 新增helm仓库 输入图片说明 2.2 安装helm chart 应用 应用列表 输入图片说明 查看应用 输入图片说明 输入图片说明 支持对参数内容选中划词AI解释 输入图片说明 2.3 查看已部署release 输入图片说明 输入图片说明 2.4 查看安装参数 输入图片说明 2.5 更新、升级、降级部署版本 输入图片说明 2.6 查看已部署release变更历史 输入图片说明

v0.0.50更新

  1. 新增HPA 输入图片说明
  2. 关联资源增加HPA 输入图片说明

v0.0.49更新

  1. 新增标签搜索:支持精确搜索、模糊搜索。 精确搜索。可以搜索k,k=v两种方式精确搜索。默认列出所有标签。支持自定义新增搜索标签。 输入图片说明 模糊搜索。可以搜索k,v中的任意满足。类似like %xx%的搜索方式。 输入图片说明
  2. 多集群纳管支持自定义名称。 输入图片说明 输入图片说明
  3. 优化Pod状态显示 在列表页展示pod状态,不同颜色区分正常运行与未就绪运行。 输入图片说明 输入图片说明

v0.0.44更新

  1. 新增kubectl shell 功能 可以web 页面执行 kubectl 命令了 输入图片说明 输入图片说明

  2. 新增节点终端NodeShell 在节点上执行命令 输入图片说明 输入图片说明

  3. 新增创建功能页面 执行过的yaml会保存下来,下次打开页面可以直接点击,收藏的yaml可以导入导出。导出的文件为yaml,可以复用 ![

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选