本文约2100字,阅读约10分钟。

很多人在刚接触 Kubernetes 的时候,都会有一个疑问:
kubectl 已经这么强了,为什么还有那么多人天天挂着 K9s?
以前我也觉得:
kubectl get pods -A
kubectl describe pod
kubectl logs -f
kubectl top node
这些命令已经够用了。
直到最近,我开始长期维护自己的 Kubernetes 集群之后,才慢慢理解:
K9s 真正解决的,不是“能不能管理集群”,而是“如何更高效地观察集群”。
而这两者,完全不是一个层级的问题。
K9s 是一个 Kubernetes 的 Terminal UI 工具。
简单理解:
它不是 GUI,也不是 Web Dashboard,而是一种非常典型的 Linux 运维风格工具。
如果你用过:
htop/ btoplazydockerncdu你会秒懂 K9s 的设计哲学:把高频操作压缩成一个按键,把信息密度压缩成一屏。
在继续之前,先给个最简单的安装方式,方便你立刻体验。
macOS (Homebrew):
brew install derailed/k9s/k9s
Linux:
curl -sSfL https://github.com/derailed/k9s/releases/latest/download/k9s_Linux_amd64.tar.gz | tar xz
sudo mv k9s /usr/local/bin/
Windows (Scoop):
scoop install k9s
安装后,只要你的 ~/.kube/config正确,直接输入 k9s就能连上当前集群。
以前我查看 Pod:
kubectl get pods -A
看到的是:
NAMESPACE NAME READY STATUS
monitoring prometheus-0 1/1 Running
kube-system coredns-xxxxx 1/1 Running
default nginx-xxxxx 1/1 Running
信息是有了,但是:
Kubernetes 的真实运行状态,远远不止这些。
而 K9s 打开之后:
:输入 ns可以秒切 Namespace整个集群一下“活了起来”。

这是我运维越久越深的一个感受。
Kubernetes 本身没问题,问题在于:
它的信息太碎了。
比如一个 Pod 出问题时,你可能需要这样来回切换:
kubectl get pods -A
kubectl describe pod <name>
kubectl logs -f <name>
kubectl top pod <name>
kubectl get events
kubectl exec -it <name> -- sh
而且:
运维体验并不舒服。
尤其是当集群开始变复杂、业务开始混合之后。
K9s 最大的提升,并不是“操作更快”(虽然确实快),而是:
它把“观察集群”这件事,从“被动查询”变成了“主动感知”。
下面我用三个最常用的场景,告诉你它有多顺。
以前:
kubectl logs -f <pod-name> -n <namespace>
需要:
在 K9s 里:
l整个过程不到 1 秒,顺滑得像桌面应用。

以前:
kubectl exec -it <pod-name> -- /bin/bash
现在:
选中 Pod → 按 s→ 直接进入 shell。
对于排障来说,这种感觉就像:
从“发短信指挥”变成了“直接走进机房”。
尤其适合:

在 K9s 的 Pod 视图里:
Shift + C**:按 CPU 使用量排序Shift + M**:按 内存 使用量排序你会发现:
很多生产问题的根源,其实就是资源竞争。
K9s 把资源热点,直接怼到你眼前。

有一次我做 Kubernetes 高可用演练,手动删除一个 Pod:
kubectl delete pod nginx-xxxxx
原生 kubectl 只返回一行:
pod "nginx-xxxxx" deleted
然后你只能再敲 kubectl get pods去轮询状态。
但在 K9s 里,整个过程是 动态连续的:
你会亲眼看到:
TerminatingPendingContainerCreatingRunningReady整个生命周期,实时刷新。
那一刻你会突然理解:
Kubernetes 原来真的是“活”的——自愈、调度、重建,都在眼前发生。
很多人会问:
“有了 Grafana,还需要 K9s 吗?”
这是一个很关键的问题。
它们不是替代关系,而是互补关系。
维度 | Grafana | K9s |
|---|---|---|
数据范围 | 历史趋势、长期指标 | 实时状态、当前现场 |
交互方式 | 鼠标、Dashboard | 键盘、终端 |
适用场景 | 容量规划、事后分析 | 即时排障、日常巡检 |
信息密度 | 宏观图表 | 微观表格 + 日志 + 终端 |
简单说:
一个运维人员的最佳姿势通常是:
左边终端挂着 K9s,右边浏览器开着 Grafana。
--readonly启动)K9s 是 放大你 K8s 运维能力的工具,不能替代你对 K8s 本身的理解。
以前我总觉得:
Kubernetes 的核心是部署。
后来发现不是。
真正困难的是:
如何长期、稳定、高效地观察和维护集群。
而 K9s 恰好解决了:
这个过程中最痛苦的那一部分——信息碎片化。
它不是炫技工具,而是一个:
真正会影响你日常运维效率、甚至会让你“上瘾”的工具。
现在我的终端里,长期挂着两个窗口:
两者加在一起,基本覆盖了一个运维人员 80% 的日常需求。
如果你还没试过 K9s,我真心建议你:
花 5 分钟装一下,连上你的测试集群或 minikube,随便翻翻。
你大概率也会慢慢理解:
为什么那么多运维工程师,一旦用上 K9s,就再也回不去了。
如果你已经用上了 K9s,欢迎在评论区分享你最喜欢的快捷键或排障小技巧。
本文基于 K9s v0.50+ 版本,截图仅为示意,实际效果以你的集群为准。