返回市场
k8s管理器

k8s管理器

作者:weibaohui709 星标更新:2025-11-23

项目介绍

<div align="center"> <h1>K8M</h1> </div>

English | Chinese

k8m

Trust Score

Alt

k8m 是一个基于人工智能驱动的迷你Kubernetes仪表盘轻量级控制台工具,旨在简化集群管理。它基于AMIS构建,并利用了 kom作为Kubernetes API客户端,k8m 内置 Qwen2.5-Coder-7B,支持与Deepseek ai/DeepSeek-R1Distill-Qwen-7B模型交互的能力,同时支持接入您自己的私有大模型(包括ollama)。

演示展示

演示 集群内模式演示 演示账号和密码:demo/demo

文档

主要特性

  • 迷你设计 所有功能集成在一个可执行文件中,易于部署和使用。
  • 易用性 用户友好的界面和直观的操作流程使Kubernetes管理变得简单。支持标准集群类型如k8s、aws eks、k3s、kind、k0s等。
  • 高效性能 后端采用Golang构建,前端基于百度AMIS,确保高资源利用率和快速响应速度。
  • AI驱动融合 基于ChatGPT实现分词解释、资源引导、YAML属性自动翻译、描述信息解释、日志AI查询和命令推荐,并整合了k8s-gpt 功能,实现了中文显示,为管理k8s提供了智能支持。
  • MCP集成 视觉化管理MCP,实现大模型调用工具,内置k8s多集群MCP工具,具有49种类型,可以组合实现超过一百种集群操作,并可用作MCP服务器 供其他大模型软件使用。轻松实现大模型管理k8s。每次MCP调用都可以详细记录。支持主流mcp.so服务。
  • MCP权限激活 集成多集群管理权限与MCP大模型调用权限。一句话概括,谁使用大模型就以其自身权限执行MCP。安全使用,无需担心未经授权的操作。
  • 多集群管理 自动识别集群内的InCluster模式使用,配置kubeconfig路径,并自动扫描同一目录级别的配置文件。同时注册和管理多个集群,支持心跳检测和自动重连。
  • 多集群权限管理 支持用户和用户组授权,按集群授予,包括集群只读、执行命令和集群管理员权限。授权用户组后,组内所有用户都将获得相应的授权。支持设置命名空间黑白名单。
  • 支持k8s最新特性 支持API网关、OpenKruise等功能特性。
  • Pod文件管理 在控制台界面左侧有一个文件树和右键菜单,支持浏览、编辑、上传、下载和删除Pod内的文件,简化日常操作。
  • Pod操作管理 支持实时查看Pod日志、下载日志和直接在Pod内执行Shell命令。支持Ctrl+F搜索,类似于grep-A-B高亮搜索。
  • API开放 支持创建第三方外部访问的API密钥,并提供Swagger接口管理页面。
  • 集群检查支持 支持多集群定时检查,自定义检查规则,支持Lua脚本规则。支持发送至钉钉群、微信群、飞书群和自定义webhook。支持AI总结。
  • K8s事件转发 支持多集群k8s事件转发至webhook,通过集群、关键词、命名空间、名称等过滤,并建立多个专用监控和转发通道。支持AI总结。
  • CRD管理 自动发现和管理CRD资源,以树形结构列出所有CRDs,提高工作效率。
  • Helm市场 支持Helm自由添加仓库,一键安装、卸载和升级Helm应用,并支持自动更新。
  • 跨平台支持 兼容Linux、macOS和Windows,支持x86和ARM等多种架构,确保在多个平台上无缝运行。
  • 多种数据库支持 支持SQLite、MySql、PostgreSQL等多种数据库。
  • 完全开源 开放所有源代码,没有任何限制,可以自由定制和扩展,可用于商业用途。

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

运行

  1. 下载:从 GitHub发布 下载最新版本。
  2. 运行:使用 ./k8m 命令启动,访问http://127.0.0.1:3618
  3. 登录用户名和密码
    • 用户名:k8m
    • 密码:k8m
    • 请注意上线后更改您的用户名和密码,并启用两步验证。
  4. 参数
Usage of ./k8m:
      --enable-temp-admin                是否启用临时管理员账户配置,默认关闭
      --admin-password string            管理员密码,启用临时管理员账户配置后生效 
      --admin-username string            管理员用户名,启用临时管理员账户配置后生效
      --print-config                     是否打印配置信息 (default false)
      --connect-cluster                  启动集群时是否自动连接现有集群,默认关闭
  -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")
      --image-pull-timeout               Node Shell、Kubectl Shell 镜像拉取超时时间。默认为 30 秒
      --node-shell-image string          NodeShell 镜像。 默认为 alpine:latest,必须包含`nsenter`命令 (default "alpine:latest")
  -p, --port int                         监听端口 (default 3618)
  -v, --v Level                          klog的日志级别 (default 2)

也可以直接通过docker-compose启动(推荐):

services:
  k8m:
    container_name: k8m
    image: registry.cn-hangzhou.aliyuncs.com/minik8m/k8m
    restart: always
    ports:
      - "3618:3618"
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ./data:/app/data

启动后,访问3618端口,默认用户:k8m,默认密码:k8m。 如果想通过在线环境快速体验,可以访问:k8m

ChatGPT配置指南

内置GPT

从0.0.8版本开始,GPT将内置且无需配置。 如果您需要使用自己的GPT,请参考以下文档。

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支持通过环境变量和命令行参数进行灵活配置,主要参数如下:

环境变量默认值描述
PORT3618监控端口号
KUBECONFIG~/.kube/configkubeconfig 文件路径将自动扫描并识别同一目录级别的所有配置文件
ANY_SELECT"true"是否启用下划线解释的任意选择,默认为真
LOGIN_TYPE"password"登录方法(如 passwordoauthtoken
ENABLE_TEMP_ADMIN"false"是否启用临时管理员账户配置,默认关闭。用于首次登录或忘记密码时
ADMIN_USERNAME管理员用户名,启用临时管理员账户配置后生效
ADMIN_PASSWORD管理员密码,启用临时管理员账户配置后生效
DEBUG"false"是否启用 debug 模式
LOG_V"2"日志输出级别,同klog使用
JWT_TOKEN_SECRET"your-secret-key"用于JWT Token生成的密钥
KUBECTL_SHELL_IMAGEbitnami/kubectl:latestFHIR shell镜像地址
NODE_SHELL_IMAGEalpine:latestNode shell镜像地址
IMAGE_PULL_TIMEOUT30Node shell,FHIR shell镜像拉取超时时间(秒)
CONNECT_CLUSTER"false"程序启动后是否自动连接发现的集群,默认关闭
PRINT_CONFIG"false"是否打印配置信息

对于详细的参数规范和其他配置方法,请参阅 docs/readme.md

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

export PORT=8080
export GIN_MODE="release"
./k8m

请参阅其他参数 docs/readme.md

容器化k8s集群操作

使用KinDMiniCube 安装小型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

修改配置

建议修改环境变量。例如,在deployy.yaml中添加env参数

开发和调试

如果您想本地开发和调试,请首先进行本地前端构建以自动生成dist目录。因为此项目使用二进制嵌入,前端没有dist将会出错。

第一步是编译前端

cd ui
pnpm run build

编译和调试后端

#下载依赖
go mod tidy
#运行
air
#或者
go run main.go 
# 监听localhost:3618端口

前端热加载

cd ui
pnpm run dev
#Vite服务会监听在localhost:3000端口
#Vite转发后端访问到3618端口

访问 http://localhost:3000

帮助和支持

如果您有任何进一步的问题或需要额外的帮助,请随时联系我!

特别感谢

zhaomingcheng01 提供了许多高质量的建议,并对k8m的易用性做出了杰出贡献~

La0jin 提供的在线资源和维护极大地改善了k8m的显示效果

eryajf 提供了非常有用的GitHub Actions,并为k8m增加了诸如发布、构建和发布的自动化功能

联系我

微信(罗马太阳)搜索ID:daluomadetaiyang,备注k8m。 <br><img width="214" alt="Image" src="https://gips1.baidu.com/it/u=1315597581,2234753628&fm=3081&app=3081&f=PNG?w=428&h=484" />

微信群

输入图片说明