k9s 快速上手指南:5 步完成 Kubernetes Pod 排障,顺手做一次集群体检
【免费下载链接】k9s🐶 Kubernetes CLI To Manage Your Clusters In Style!项目地址: https://gitcode.com/GitHub_Trending/k9s/k9s
凌晨,一个 Pod 突然 CrashLoopBackOff,你在终端里一条条拼 kubectl 命令。k9s就是为解决这种场景而做的:一个跑在终端里的 Kubernetes 管理台,它持续监听集群变化,资源清单在你眼前自动刷新,看到异常直接按键操作,全程不用离开终端。
没有它的时候,排障是这样过的:先kubectl get pods找到异常 Pod,记下名字,再kubectl logs xxx翻崩溃栈,觉得不对劲切到kubectl describe pod xxx看探针和 Events,怀疑 OOM 还得kubectl exec -it xxx -- /bin/sh进容器验证。集群大一点,每条命令都得记得补-n 命名空间;看的是 A 集群,还得先切 context。每条命令都是一次性快照,你真正需要的是一张持续更新的清单,这个靠敲命令拼不出来。
k9s 直接复用你机器上已有的~/.kube/config,不用额外登录,装完就能看集群。
kubectl、Web 控制台和 k9s:各自适合谁
| 做法 | 工作方式 | 适合谁 |
|---|---|---|
| kubectl 命令行 | 一条命令一个动作,状态靠自己记 | 写脚本、CI 自动化、一次性操作 |
| Web 控制台 | GUI 仪表盘,要登录浏览器 | 偶尔看看状态、不在终端机上的人 |
| k9s | 常驻终端进程,清单实时更新,按键直接操作资源 | 天天在终端里排障和巡检的人 |
结论很直接:如果你每天靠 kubectl 或跳板机管集群,受够了拼命令和切上下文,就该把 k9s 放手上。
三分钟安装:一条 brew 命令跑起 k9s
macOS 和 Linux 都用 Homebrew,最短路径一条命令:
brew install derailed/k9s/k9s export KUBE_EDITOR=vim第一行装 k9s,第二行指定在 k9s 里按e编辑资源时用的编辑器,不设置的话找不到编辑器会报错。
运行k9s,启动页之后直接落在Pod 列表视图:当前命名空间的 Pod 按 READY、STATUS、RESTARTS、CPU、MEM 排成列,异常的 Pod 标红,RESTARTS 在涨会自己跳出来,全程不用敲任何命令。按?能列出所有按键,按ctrl-a能看到全部可切换的资源别名。
主线走一遍:Pod 反复重启的完整排障链路
场景:某个 Pod 处于 CrashLoopBackOff,RESTARTS 持续增长。整条链路 5 步走,一条线讲完:
- 看到异常。目标:确认是哪个 Pod。动作:在 Pod 视图里,标红且 RESTARTS 持续增长的那一行就是。做完后看到:异常行孤零零排在列表前部,不用肉眼扫全表。
- 过滤定位。目标:把列表收敛到这一行。动作:按
/输入应用名片段,列表实时过滤,支持fred|blee这类正则。做完后看到:只剩匹配的几行,上下文再乱也不影响你。 - 日志取证。目标:找到崩溃原因。动作:选中该行按
l打开日志视图,b上翻、f下翻定位崩溃栈;想看上一次崩溃按p。做完后看到:日志里的报错指向某个启动命令失败。 - 描述核对。目标:排除探针配置问题。动作:按
d打开 describe 页,重点看探针配置段和 Events 段。做完后看到:要么有探针失败记录,要么确认是应用本身崩了。 - 处置恢复。目标:干净重建。动作:按
ctrl-d删除这个 Pod,TAB + 回车确认后自动重建;如果确认是镜像或配置问题,切到:dp视图选中对应 Deployment 按r整组重启。做完后看到:新 Pod 拉起,STATUS 转为 Running。
全程没有离开终端,也没有拼任何一条 kubectl 命令。
掌握基础后的三个省时功能
健康仪表盘:只看一列数字
命令模式下输入:health进入健康仪表盘。每种资源占一行,格式是"总数 : 健康 : 异常",第三位是 0 就不用管。日常巡检一步完成:扫一眼面板,只去追非 0 的行。比如 Pod 行异常数大于 0,就跳回 Pod 视图看那几个是谁。
内置 Popeye:一键集群合规扫描
输入:popeye(或缩写pop)触发一次集群扫描,结果按资源类型分组,每行给出扫描数与 OK / INFO / WARNING / ERROR 计数。常见扣分项是缺少 NetworkPolicy、容器没配资源限制、镜像没锁版本。把它当基线用:评分保持在 80 以上算受控,低于 50 就该优先安排整改。
团队化:hotkeys 与 plugins
配置文件统一放在~/.config/k9s(macOS 为~/Library/Application Support/k9s),拿不准路径就跑k9s info,它会列出 config、日志、皮肤等每个文件的实际位置。hotkeys.yaml把按键绑到资源视图,plugins.yaml把外部命令绑到视图上:
plugins: pod-logs: shortCut: Ctrl-L description: 跟踪 Pod 日志 scopes: ["pods"] command: kubectl args: ["logs", "-f", "$NAME", "-n", "$NAMESPACE"]$NAME、$NAMESPACE会自动替换为当前选中资源的值,仓库 skins/ 里有一批 Dracula、Nord、Monokai 等现成主题,plugins/ 目录里全是可以直接改造的插件示例。
避坑:现象出现时先检查什么
- 颜色不渲染、图标乱码:先查终端是否支持 256 色;图标持续乱码就在配置里把
ui.noIcons: true打开,别怀疑工具坏了。 - 改了配置不生效:先跑
k9s info看 k9s 实际加载的目录,配置写错地方是最常见原因;也可以用K9S_CONFIG_DIR显式指定。 - 大集群刷新卡顿、API server 压力大:把配置里的
refreshRate调大,单位秒,默认 2,最低也只能到 2。 - 删除、编辑操作点了没反应:查
readOnly是不是被设成true,这是防手滑的设计,巡检场景建议保持打开。
今天就能做:
- 装好 k9s,进入 Pod 视图,用
/过滤一次列表 - 挑一个 Pod 走完整条
l日志 →d描述 →ctrl-d重建的路径 - 输入
:health看一眼,记下非 0 的那几行是谁
【免费下载链接】k9s🐶 Kubernetes CLI To Manage Your Clusters In Style!项目地址: https://gitcode.com/GitHub_Trending/k9s/k9s
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考