news 2026/9/10 22:17:38

3 分钟装好、5 分钟定位异常:k9s k8s 终端运维实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3 分钟装好、5 分钟定位异常:k9s k8s 终端运维实战指南

3 分钟装好、5 分钟定位异常:k9s k8s 终端运维实战指南

【免费下载链接】k9s🐶 Kubernetes CLI To Manage Your Clusters In Style!项目地址: https://gitcode.com/GitHub_Trending/k9s/k9s

k9s 是一款面向 Kubernetes 集群管理的终端工具,把 kubectl 式的集群操作收进一个可逛的界面里。本文按任务推进:安装并首次启动、用健康仪表盘 3 分钟找到异常、用三个键把根因查透、再用 Popeye 给集群打出合规分。

安装 k9s 并完成首次启动

周五 18:07,周末前夜,错误率曲线突然抬头。一个核心 Deployment 的滚动更新卡了 20 分钟:期望 5 份,当前 3 份,可用的只有 2 份。你正要打开终端,开始老一套的 kubectl 三连。

先停一下。这个场景,用本文的流程走一遍,从发现到定位,5 分钟内能收住。

工具先就位。三种装法任选其一:

brew install derailed/k9s/k9s # 适合 macOS / Linux 用户 docker run --rm -it -v ~/.kube/config:/root/.kube/config derailed/k9s # 适合不想装本机的 git clone https://gitcode.com/GitHub_Trending/k9s/k9s && cd k9s && make build # 适合想编译源码的

装完补两个环境变量,省掉颜色和编辑器的坑:

export TERM=xterm-256color export KUBE_EDITOR=vim

k9s 直接复用你现有的~/.kube/config,不用额外登录。它自己的配置在~/.config/k9s(Linux/macOS)或%LOCALAPPDATA%\k9s(Windows)。放一份最小配置进去就够启动:

k9s: refreshRate: 2 readOnly: false ui: enableMouse: true skin: dracula

输入k9s回车,默认落在 Pod 列表。看到列表在刷新,安装这步就收工了。

用健康仪表盘 3 分钟找到异常资源

进入 k9s 后第一件事:按:进入命令模式,输入pulses回车。这就是集群健康仪表盘。

每个仪表是一行文字,格式固定为资源(总数:当前数:异常数)。读法只有一条:只看第三个数字,为 0 不用管,非 0 才轮到它。比如Events(56:47:9)意味着 9 条事件等你过目。

仪表盘之外的三个高频键:

  1. 选中某个异常仪表 → 按Enter,直接钻进对应资源视图;
  2. 列表里按/输入关键词,实时过滤;
  3. 数据不新鲜时按ctrl-r强制刷新。

切视图也一样直接::加资源别名回车,podsdpsvcnssts都行。切视图、过滤、刷新,三个键覆盖日常巡检。

颜色是第二套信号:状态列标红的行就是异常行,红边框的仪表说明该类别有故障。扫一眼颜色和第三位数字,3 分钟能把"哪里不对劲"说清楚。

把根因查透:日志、describe、容器 shell

定位到那个红行,比如 CrashLoopBackOff 的 Pod,接下来是标准的 k9s 排障三连。

  1. 选中 Pod → 按l打开日志。看最后一屏的报错栈,判断是启动即崩还是运行中挂掉。日志页里b上翻、f下翻、ctrl-t回顶部、ctrl-u到底部。
  2. 选中 Pod → 按d看 describe。只翻到 Events 区,探针失败、镜像拉取失败、挂载错误都写在最后几行。
  3. 选中 Pod → 按s进容器 shell。手动跑一遍它的启动命令,复现猜想,验证完exit出来。

Pod 列表里 READY、STATUS、RESTARTS、CPU、MEM 一排列开,重启次数两位数、状态标红,就是重点嫌疑人。想看全部命名空间?点底部状态栏的命名空间标签 → 选All

三连回答的是同一个问题:它死在哪、怎么死的、死前在干什么。三步走完,多数线上故障的根因已经浮出水面。

重启、扩缩容、删 Pod:三种现场操作与三条生产红线

查到根因,动手。操作都在选中对象之后发生:

  1. 选中卡住的 Deployment → 按Enter→ 菜单里选 Restart,全量副本滚动重建;
  2. 同一个菜单里选 Scale,直接改副本数;
  3. 选中垃圾 Pod → 按ctrl-d→ 输入y确认,让它原地重建。

动手前先看一眼列表:期望副本、当前副本、可用副本,三列数字对不齐就说明更新卡在半路,这时 Restart 比 Scale 更对症。

生产环境的三条底线,写进肌肉记忆:

  1. 巡检场景在配置里把readOnly置为true,防手滑;
  2. k9s 的 kubeconfig 配最小 RBAC,别直接给 admin;
  3. 终端显示异常时,先查TERM是否 256 色、字体是否覆盖特殊符号,再怀疑工具。

用 Popeye 给 k8s 集群打分并写进周报

排障是救火,体检才是习惯。内置扫描器不用另装:命令模式输入popeye,回车,它会对集群各类资源做合规检查。

结果按资源类型分组,每行给出 SCORE、SCANNED,以及 OK / INFO / WARNING / ERROR 四档计数。分档标准很直白:

  • 低于 50 分:高风险,本周必须处理;
  • 50 到 80 分:需要改进,进整改清单;
  • 80 分以上:合规,可以安心。

常见丢分项就那几类:networkpolicy缺失、容器没有资源限制、镜像没锁版本。建议固定每周五跑一次,把评分截图贴进周报——数字比"集群很健康"有说服力

把 k9s 快捷键、主题和插件改成你的习惯

工具顺手之后,让它迁就你。三件事,每件一个文件。

k9s 快捷键。配置目录建hotkey.yaml,把高频视图绑到 Shift 键上:

hotKeys: shift-1: shortCut: Shift-1 description: 查看部署 command: dp shift-2: shortCut: Shift-2 description: 集群安全扫描 command: popeye

主题skins/目录里躺着 dracula、nord、monokai 等一批配色,在k9s.ui.skin里写名字即生效。长时间盯屏,选暗色系。

k9s 插件配置。插件是 k9s 的扩展点,把团队零散命令收编进同一界面。仓库里现成的插件目录可以参考:plugins/。比如绑一个日志跟踪:

plugins: follow-pod-logs: shortCut: Ctrl-L description: 跟踪 Pod 日志 scopes: [pods] command: kubectl args: ["logs", "-f", "$NAME", "-n", "$NAMESPACE"]

$NAME$NAMESPACE会自动替换成你当前选中资源的值。

用基准测试验证调优

调优别凭感觉。流程是:Pod 视图选中暴露端口的 Pod → 按SHIFT-F指定本地端口建立 port-forward → 切到pf视图 → 选中这条转发 → 按ctrl-b发起基准测试(默认 1 并发、200 请求)→ 用:be查看结果报告。

每个集群/上下文对应一份benchmarks.yaml,可以覆盖并发数、请求数、请求路径:

benchmarks: defaults: concurrency: 1 requests: 200 containers: default/nginx:nginx: concurrency: 4 requests: 2000 http: path: /healthz method: GET

改了资源请求值、滚动更新之后,再压一次,两份报告一对比,优化有没有效,数字说了算。

k9s 能省多少:对比表与今天就做的三件事 🎯

典型任务kubectl 时代k9s 时代削减结果
找到问题 Pod2 条命令加肉眼比对列表里盯红行2 条命令 → 0 条
追一个失败容器拼 2 条命令(logs、exec)选中行按l/s2 条命令 → 2 个键
上百条里锁定目标手写 label 选择器/输入即过滤1 条长命令 → 1 个键
集群合规打分单独部署 Popeye:popeye一个键分钟级部署 → 秒级出分

今天就做的三件事:

  1. 跑一条安装命令 → 敲k9s,确认 Pod 列表正常刷新;
  2. :pulses,逐行只看第三个数字,非 0 的那行按Enter钻进去确认;
  3. 在 Pod 列表按/过滤出异常 Pod → 按l看日志 → 按d看描述,完成一次真实排障。

周五那个卡在 2/5 的 Deployment,有这套动作,下次你能在 5 分钟内定位,当天修完再走。终端不是负担,是驾驶舱;k9s 的意义,就是把告警响起的头几分钟,从手忙脚乱变成按部就班。

【免费下载链接】k9s🐶 Kubernetes CLI To Manage Your Clusters In Style!项目地址: https://gitcode.com/GitHub_Trending/k9s/k9s

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 22:12:58

PLC在洗衣机控制系统中的应用与设计实践

1. 洗衣机控制系统的核心需求解析在传统家电领域,洗衣机控制系统经历了从机械式到电子式的演进过程。现代中高端洗衣机普遍采用可编程逻辑控制器(PLC)作为核心控制单元,这种方案相比单片机控制具有显著优势:抗干扰能力…

作者头像 李华
网站建设 2026/9/10 22:12:13

Ventoy启动盘工具:3步把U盘变多系统启动盘的完整教程

Ventoy启动盘工具:3步把U盘变多系统启动盘的完整教程 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 又要为了装个系统把U盘重新格式化一遍?这种日子可以结束了。开源免费的Ven…

作者头像 李华
网站建设 2026/9/10 22:11:49

Ubuntu离线安装vim编辑器全攻略

1. 为什么需要离线安装包?在Linux系统管理员的日常工作中,离线环境下的软件部署是个常见挑战。想象一下这样的场景:你正在为某金融机构部署Ubuntu服务器,由于安全合规要求,这些机器完全隔离在内部网络,无法…

作者头像 李华
网站建设 2026/9/10 22:11:32

Trivy 插件体系全指南:trivy plugin 命令参考与实战用法

Trivy 插件体系全指南:trivy plugin 命令参考与实战用法 【免费下载链接】trivy Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more 项目地址: https://gitcode.com/GitHub_Trending/tr/tr…

作者头像 李华