运维人的 K8s 神器 — Pod Master 开源了

0 阅读6分钟

#K8s神器 · #开源白嫖 · #Pod Master

不用装 Agent、不用配前端 · 复制粘贴三条命令 · 咖啡还没凉就能用上

👉 项目地址:github.com/MMCISAGOODMAN/pod-master

图片

太长不看版 👇

玩 K8s 的兄弟集美们,下面这些场景是不是熟得不能再熟——

懂的都懂

😵 告警一响,Alt+Tab 切到飞起:get pods、logs -f、exec -it,三个终端窗口像打地鼠

🤔 payment 挂了,gateway 崩没崩?kubectl 不会画调用链,只能靠脑补

😭 CrashLoop 日志几百行,OOM、空指针、DB 超时搅在一起,像在看无标点文言文

😅 要给老板 Demo,Lens 要装、SaaS 要 Agent、Prometheus 要配半天——我只是想秀一下集群啊!

于是我把 Pod Master 开源了。一句话:把运维常用的活儿,全塞进一个浏览器 Tab,少开几个窗口,多睡几小时觉。

✅ 大屏看 Pod — 卡片墙 + 红框呼吸灯,异常的 Pod 自己「喊」你

✅ 拓扑看链路 — 谁调谁、哪根线变红,不用猜了

✅ 工作台排障 — 日志、终端、AI 诊断,Tab 来回切,页面不关

✅ 一条命令启动 — mvn spring-boot:run,前端?不存在的

✅ 没集群也能玩 — Mock 模式自带演示数据,白嫖 UI 体验

1 条命令就起飞0npm install5 Tab排障一条龙MIT随便 fork

下面全是真截图、真功能,没 P 过——觉得香的话,GitHub 点个 Star 就是最大的鼓励 🌟

一、和 kubectl、商业监控比,它香在哪?

先泼盆冷水:Pod Master 不是 Prometheus / Grafana / Istio 的平替。它干的是那些你每天要干八百遍的小事——看 Pod、翻日志、进容器、瞄一眼拓扑。小事积少成多,省下来的时间够你多喝两杯咖啡 ☕

能力kubectl商业 SaaSPod Master
上手难度
背命令
注册+Agent
点开就用
Pod 可视化
黑底白字
大屏卡片墙
Web 终端
本地终端
看运气
浏览器真 Shell
调用链拓扑
脑补
一般有
注解一配就有
AI 读日志
自己啃
看套餐
OOM 都认
开源自托管
CLI 免费
钱包疼
MIT fork
部署折腾度
中等
一条 Maven

人话版:**比 kubectl 好看,比 SaaS 轻,比搭一整套监控栈省事。**开发自测、内网大屏、给老板 Demo、学 K8s 集成——都能用。

二、这玩意儿到底是啥?

简单说,Pod Master = 一个 JAR 包走天下:

· Spring Boot 3 后端 + Fabric8 连 K8s   · Vue3 单 HTML 前端,没有 node_modules 地狱   · 集群挂了?Mock 模式自动顶上,界面照样滑

懒人福音

想改代码?Java + 一个 HTML,保存 → mvn spring-boot:run → 刷新,完事

想接集群?读 ~/.kube/config,kubectl 能用,它就能用

想挂集群里长期跑?改一行 connection-mode: in-cluster

三、大屏监控:打开浏览器的第一眼

跑起来打开 http://localhost:8083——深蓝大屏、实时时钟、告警滚动条,**没有那种「白底亮瞎眼」的 Grafana 默认主题**,投屏给老板看也不丢份儿。

图片

Pod 管理大屏 — 卡片墙 + 列表 + 实时统计

个人最爱

挂掉的 Pod 会红框一闪一闪,像在说「看我!看我!」——不用在一堆 Running 里找 CrashLoopBackOff。更绝的是还能语音播报(嫌吵可以关),半夜迷糊也不容易漏告警。

这页能干啥?

· 按命名空间筛,卡片墙一眼扫完   · 搜索、分页、重启、删除——点按钮就行   · 点「进入工作台」→ 单 Pod 深度排障

四、流量拓扑:我最爱炫的功能 ✨

切到「流量拓扑」,业务域分组 + Pod 小圆点 + 调用连线——终于不用在脑子里画架构图了:

图片

业务流量拓扑 — 业务域分组 + 调用链 + 异常标红

· 圆点 = Pod(绿 Running / 黄 Pending / 红异常)   · 连线粗细 ≈ 估算 QPS,红色 = 高错误率   · 单击 Pod 进入工作台;Shift+点击可批量重启/删除

以前:payment 挂了 → 两边日志来回翻 → 20 分钟过去了。现在:payment 变红、连线变红 → 10 秒收工

五、Pod 工作台:五个 Tab 够用了

点进任意 Pod,全屏工作台打开——五个 Tab 把排障流程串成一条线,不用 Alt+Tab 切到怀疑人生。

5.1 概览 — describe 的信息,一屏看完

图片

Pod IP、业务域、资源、容器列表、AI 诊断摘要——kubectl describe 那堆 YAML 风输出,这里变成人话卡片了。

5.2 实时日志 — logs -f,但不用开新终端

图片

5 秒自动刷新,日志自己滚。终端窗口数 -1,快乐 +1。

5.3 交互式终端 — 真 Shell,不是玩具

图片

xterm.js + WebSocket 直连容器,ls、curl、jstack 想跑啥跑啥。体验和 kubectl exec -it 差不多,区别是你人还在浏览器里。

5.4 AI 日志诊断 — 日志太长?让它先读

图片

帮你认 OOM、空指针、DB 超时、CrashLoop,还附赠修复建议。不是「建议您检查配置哦」的废话,是能对着改的那种。

隐藏玩法

demo 里有个 payment-service 是故意 CrashLoop 的——部署 demo 后点进去,空指针 + 修复建议立刻出来,给同事演示效果拉满 😂

六、资源成本:看看哪个业务域在「烧钱」

图片

按业务域汇总 CPU/内存,粗算日费用和占比——不用买 FinOps 工具,也能回答「哪个域最费钱」。

七、谁适合用?对号入座 👇

🌙 半夜被叫醒的

告警 → 大屏锁定 → 拓扑看影响 → 工作台翻日志 + AI 诊断 → 全程一个浏览器,回去接着睡。

🎬 要给老板 Demo 的

大屏投出来很帅;没集群 Mock 模式照样秀;demo 脚本一键部署还带故意故障。

🏢 内网挂大屏的

MIT 开源、自己部署,数据不出内网。墙上 7×24 盯着 Pod 状态。

📚 想学 K8s 集成的

Fabric8 + WebSocket exec + 单文件 Vue,当 Spring Boot 接 K8s 的练手项目很合适。

八、半夜告警怎么处理(2 分钟版)

00:00 · 叮!告警来了

浏览器「嘟」一声 + 红框闪 → 锁定 payment-service-xxx

00:30 · 看看连累谁没

切拓扑 → gateway→payment 线变红 → OK,就 payment 自己挂了

01:00 · AI 先看一眼

进工作台 → AI 诊断 → CrashLoop + 空指针 + 修复建议

02:00 · 修完收工

改完重启 → 大屏变绿 → 继续睡 💤

九、跑起来!复制粘贴就行

· JDK 17+、Maven 3.8+   · 一个能 kubectl cluster-info 的集群(没有也行)

git clone github.com/MMCISAGOODM… pod-master# 可选:部署 demo 环境./scripts/setup-k8s-demo.sh# 启动应用mvn spring-boot:run# 或一条龙./scripts/start-all.sh

浏览器打开:http://localhost:8083

curl http://localhost:8083/api/health\\# status: UP 表示已连上集群

没集群?也能玩!

Mock 模式会自动塞演示数据,界面照样滑。先 Star 下来本地看看,等有集群了再接 kubeconfig。

十、本地 / 远程 / 集群内,都能连

规则很简单:kubectl 能用,它就能用

| 场景 | 做法 | | --- | --- | | 本地  kind/minikube | 默认读 ~/.kube/config | | 远程  云 K8s | 拷贝 kubeconfig 或 SSH 隧道 | | 集群内  长期部署 | connection-mode: in-cluster |

十一、技术栈速查

| 能力 | 实现 | | --- | --- | | K8s 集成 | Fabric8 Client 6.x | | 交互终端 | WebSocket + K8s exec | | 前端 | Vue3 + xterm.js 零构建 | | 拓扑 | Service 注解 | | 容错 | Mock 模式 |

最后唠两句

Pod Master = 轻量、能自己部署、开箱即用 的 K8s Pod 可视化小工具。

少开几个终端,多睡会儿觉,它不香吗?

⭐ github.com/MMCISAGOODMAN/pod-master

有想法提 Issue · 想改代码直接 PR · MIT 随便 fork

来聊五毛钱的

你排障 K8s 时,最烦哪一步?翻日志、进容器、还是搞不清调用链?

还希望这类工具加点啥?评论区甩需求——说不定下个版本就是你的 idea 👇