一款轻量级、跨平台的 Mini Kubernetes AI Dashboard,支持大模型+智能体+MCP,集成多集群管理、智能分析、实时异常检测等功能,支持多架构并可单文件部署,助力高效集群管理与运维优化。
k8m 是一款AI驱动的 Mini Kubernetes AI Dashboard 轻量级控制台工具,专为简化集群管理设计。它基于 AMIS 构建,并通过
kom
作为 Kubernetes API 客户端,k8m 内置了
Qwen2.5-Coder-7B,支持deepseek-ai/DeepSeek-R1-Distill-Qwen-7B模型
模型交互能力,同时支持接入您自己的私有化大模型。
k8s-gpt
功能,实现中文展现,为管理k8s提供智能化支持。k8m 的设计理念是“AI驱动,轻便高效,化繁为简”,它帮助开发者和运维人员快速上手,轻松管理 Kubernetes 集群。
./k8m
命令启动,访问http://127.0.0.1:3618。Usage of ./k8m:
--admin-password string 管理员密码 (default "123456")
--admin-username string 管理员用户名 (default "admin")
-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)
从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"
如果设置参数后,依然没有效果,请尝试使用./k8m -v 6
获取更多的调试信息。
会输出以下信息,通过查看日志,确认是否启用ChatGPT。
ChatGPT 开启状态:true
ChatGPT 启用 key:sk-hl**********************************************, url:https: // api.siliconflow.cn/v1
ChatGPT 使用环境变量中设置的模型:Qwen/Qwen2.5-Coder-7B-Instruc
本项目集成了github.com/sashabaranov/go-openaiSDK。 国内访问推荐使用硅基流动的服务。 登录后,在https://cloud.siliconflow.cn/account/ak创建API_KEY
以下是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" | 是否自动注册纳管宿主集群,默认启用 |
这些环境变量可以通过在运行应用程序时设置,例如:
export PORT=8080
export OPENAI_API_KEY="your-api-key"
export GIN_MODE="release"
./k8m
注意:环境变量会被启动参数覆盖。
brew install kind
kind create cluster --name k8sgpt-demo
kubectl apply -f https://raw.githubusercontent.com/weibaohui/k8m/refs/heads/main/deploy/k8m.yaml
首选建议通过修改环境变量方式进行修改。 例如增加deploy.yaml中的env参数
MCP程序使用3619端口。NodePort使用31919端口。 如果二进制方式直接启动,那么访问地址为http://ip:3619/sse 如果集群方式启动,则访问地址为则访问地址为http://nodeIP:31919/sse
内置MCP Server 管理范围与k8m 纳管的集群范围一致。 界面内已连接的集群均可使用。
类别 | 方法 | 描述 |
---|---|---|
集群管理(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 |
适合MCP工具集成,如Cursor、Claude Desktop、Windsurf等,此外也可以使用这些软件的UI操作界面进行添加。
{
"mcpServers": {
"kom": {
"type": "sse",
"url": "http://IP:9096/sse"
}
}
}
V0.0.66更新
v0.0.67 更新
v0.0.64 更新
v0.0.62 更新
v0.0.61 更新
v0.0.60更新
v0.0.53更新
v0.0.50更新
v0.0.49更新
v0.0.44更新
新增kubectl shell 功能
可以web 页面执行 kubectl 命令了
新增节点终端NodeShell
在节点上执行命令
新增创建功能页面
执行过的yaml会保存下来,下次打开页面可以直接点击,收藏的yaml可以导入导出。导出的文件为yaml,可以复用
deploy、ds、sts等类型新增关联资源
4.1 容器组
直接显示其下受控的pod容器组,并提供快捷操作
4.2 关联事件
显示deploy、rs、pod等所有相关的事件,一个页面看全相关事件
4.3 日志
显示Pod列表,可选择某个pod、Container展示日志
4.4 历史版本
支持历史版本查看,并可diff
全新AI对话窗口
全新AI搜索方式,哪里不懂选哪里
页面所有地方都可以划词翻译
,哪里有疑问就选中哪里。
v0.0.21更新
v0.0.19更新
v0.0.15更新
如果你有任何进一步的问题或需要额外的帮助,请随时与我联系!
zhaomingcheng01:提出了诸多非常高质量的建议,为k8m的易用好用做出了卓越贡献~
微信(大罗马的太阳) 搜索ID:daluomadetaiyang,备注k8m。