探索AI+k8s:如何使用Deepseek大模型增强k8s-dashboard

一、导读

Kubernetes(简称K8s)的普及让开发和运维工作变得更加高效,但它的复杂性却让许多人在使用时面临挑战。从网络配置到故障排查,每一步都需要深入的技术积累。然而,随着人工智能技术的迅猛发展,借助智能工具,我们可以将许多复杂问题简单化。
本文将向您介绍一款将 AI 助手与 Kubernetes 管理相结合的轻量级工具——k8m。它将如何帮助开发者和运维人员高效管理集群资源,优化工作流程,让繁琐的 Kubernetes 操作变得更加轻松快捷?
二、k8m介绍

k8m 是一款集 AI 与 Kubernetes 于一体的轻量级控制台工具,专为简化集群管理设计。基于 AMIS 构建,并通过 kom 作为 Kubernetes API 客户端,k8m 内置了 Qwen2.5-Coder-7B 模型交互能力,同时支持接入您自己的私有化大模型,比如deepseek模型。
三、安装和运行

3.1 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/v1ChatGPT 使用环境变量中设置的模型:Qwen/Qwen2.5-Coder-7B-Instruc
ChatGPT 账户
本项目集成了github.com/sashabaranov/go-openaiSDK。 国内访问推荐使用硅基流动的服务。 登录后,在https://cloud.siliconflow.cn/account/ak创建API_KEY
3.2 二进制部署
下载 从 GitHub 获取最新版本。
项目地址:https://github.com/weibaohui/k8m/
运行 在终端中运行以下命令启动服务,并通过浏览器访问:
./k8m
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”)
-v, –v Level klog的日志级别 (default 2)
3.3 k8s中yaml部署
以下是k8m支持的环境变量设置参数及其作用的表格:
环境变量 默认值 说明
PORT
3618
监听的端口号
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”
是否自动注册纳管宿主集群,默认启用
这些环境变量可以通过在运行应用程序时设置
注意:环境变量会被启动参数覆盖。
其中模型环境变量需要根据实际情况修改,yaml中的142,144,146行

yaml中的91行需要改成自己集群的sc名称,主要是为了做持久化数据用

apiVersion:v1
kind:Namespace
metadata:

name:k8m

apiVersion:v1
kind:ServiceAccount
metadata:
labels:
app:k8m
name:k8m

namespace:k8m

kind:Role
apiVersion:rbac.authorization.k8s.io/v1
metadata:
labels:
app:k8m
name:k8m
namespace:k8m
rules:
-verbs:
-“” apiGroups: -“
resources:

-“*”

kind:ClusterRole
apiVersion:rbac.authorization.k8s.io/v1
metadata:
labels:
app:k8m
name:k8m
rules:
-verbs:
-“get”
-“list”
-“watch”
-“pods/exec”
apiGroups:
-“” resources: -“
-verbs:
-“get”
-“list”
-“watch”
-“pods/exec”
nonResourceURLs:

-“*”

apiVersion:rbac.authorization.k8s.io/v1
kind:RoleBinding
metadata:
labels:
app:k8m
name:k8m
namespace:k8m
roleRef:
apiGroup:rbac.authorization.k8s.io
kind:Role
name:k8m
subjects:
-kind:ServiceAccount
name:k8m

namespace:k8m

apiVersion:rbac.authorization.k8s.io/v1
kind:ClusterRoleBinding
metadata:
name:k8m
roleRef:
apiGroup:rbac.authorization.k8s.io
kind:ClusterRole
name:k8m
subjects:
-kind:ServiceAccount
name:k8m

namespace:k8m

apiVersion:v1
kind:PersistentVolumeClaim
metadata:
name:k8m-pv-claim
namespace:k8m
labels:
app.kubernetes.io/name:k8m
spec:
storageClassName:nfs-sc##这里需要改成自己集群的sc名称
accessModes:
-ReadWriteMany
resources:
requests:

storage:10Gi

apiVersion:v1
kind:Service
metadata:
name:k8m-nodeport
namespace:k8m
labels:
app:k8m
spec:
ports:
-name:http-k8m
protocol:TCP
port:3618
targetPort:3618
nodePort:31999
selector:
app:k8m

type:NodePort

apiVersion:apps/v1
kind:Deployment
metadata:
name:k8m
namespace:k8m
labels:
app:k8m
spec:
replicas:1
selector:
matchLabels:
app:k8m
template:
metadata:
labels:
app:k8m
spec:
containers:
-name:k8m
image:registry.cn-hangzhou.aliyuncs.com/minik8m/k8m:0.0.66
env:
-name:DEBUG
value:”false”
-name:LOG_V
value:”6″
-name:OPENAI_API_KEY
value:”sk-xxxx”
-name:OPENAI_API_URL
value:”http://xxxxxxx/deepseek-14b”
-name:OPENAI_MODEL
value:”deepseek-14b”
-name:KUBECTL_SHELL_IMAGE
value:bitnami/kubectl:latest
-name:NODE_SHELL_IMAGE
value:alpine:latest
-name:SQLITE_PATH
value:/app/data/k8m.db
-name:IN_CLUSTER
value:”false”
ports:
-containerPort:3618
protocol:TCP
name:http-k8m
imagePullPolicy:IfNotPresent
volumeMounts:
-name:kubepi-persistent-storage
mountPath:/app/data
restartPolicy:Always
serviceAccountName:k8m
volumes:
-name:kubepi-persistent-storage
persistentVolumeClaim:
claimName:k8m-pv-claim
四、常用功能介绍

4.1 Yaml属性自动翻译
k8m 提供集成的 YAML 浏览、编辑和文档查看功能,支持自动翻译 YAML 属性。无论是查找字段含义还是确认配置细节,您都无需再费时费力地搜索,极大提高了工作效率。

4.2 Event信息AI问诊
在 Event 页面,k8m 内置了 AI 问诊功能,可智能分析异常事件,并提供详细的解释。点击事件前的“AI大脑”按钮,稍等片刻即可查看诊断结果,快速定位问题原因。
点击Event信息前面的“AI大脑”

稍等片刻,AI返回解读信息

4.3 错误日志AI问诊
日志分析是定位问题的重要环节,但面对大量报错信息,如何高效排查?k8m 支持 AI 日志诊断,帮助快速识别关键错误并生成解决建议。只需选中相关日志,点击 AI 问诊按钮,即可获得诊断报告。
当服务运行不正常的时候,可能第一件事就是来看日志。但是往往报错的日志一大堆,难以抓住头绪,这时候,要是AI能帮忙看看就好了~~~
首先进入Pod日志界面

点击查看日志

选中错误日志,在前面打勾,点击右面的AI问诊按钮

稍等片刻,AI诊断报告呈上,有没有感觉很酷~
4.4 AI智检
智检功能主要是引用了k8s_gpt工具中预置的规则使用大模型,进行集群的智能巡检,目前平台支持集群,节点,部署,有状态集,容器组,svc,ingress等多个资源对象的巡检

4.5 运行命令自动生成
日常运维中,Pod 内命令操作不可避免。借助 AI,您只需输入需求描述,k8m 即可自动生成合适的命令供参考,减少查找时间,提高效率。
首先进入POD Shell中

在命令对话框,尝试输入一个段描述,比如查看存储容量,那么AI会自动返回df-h回来,如果你描述的信息越多,那么AI返回的命令也会更精确。当然也可以参考AI的命令,你自己再加工一下~

4.6 MCP工具支持
v0.0.66 更新,增加MCP支持

4.7 集群纳管
k8m支持多集群管理,一个dashboard可以纳管多个集群,在界面进行切换,拿到快速访问集群资源的能力,目前纳管只支持kubeconfig文件来进行纳管,需要网络可通

可以在多集群菜单中点击切换,也可以在右上角切换集群

4.8 用户权限管理
目前k8m中支持添加用户和用户组,给用户组赋予权限之后,整个用户组中的用户都有了对应的角色权限,现阶段权限是全局所有集群的,后续会细化到集群和命名空间,一共三种角色权限
集群管理员:可以管理和操作所有集群资源,包括创建、修改、删除等操作。 集群只读:仅可查看集群资源信息,无法进行修改操作。
平台管理员:可以管理平台配置、用户权限等系统级设置。

五、总结

k8m 作为一款结合 AI 和 Kubernetes 的工具,展现了其简洁高效的设计理念。从便捷的文件管理、日志诊断到智能化的 YAML 翻译和故障排查,k8m 凭借其直观的界面和 AI 支持,极大提升了 Kubernetes 的易用性和可操作性。
无论是需要快速查看集群状态,还是解决复杂的配置和运行问题,k8m 都能为开发者和运维团队提供可靠支持。同时,它兼容本地化大模型部署,有效解决了数据安全和访问效率问题,为企业提供更高的自主性。
希望有兴趣的朋友可以一起参与进来,给项目star(k8m项目地址),多提issues,使用过程中有问题可以关注公众号->关于我们,进入微信群

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/426607.html

联系我们
联系我们
分享本页
返回顶部