每天在终端里反复敲 kubectl get pods -n prod、kubectl logs、kubectl exec,是大多数 Kubernetes 运维的日常。当集群规模上来、命名空间一多,命令组合的记忆成本和上下文切换会迅速拖慢排障节奏。K9s 就是为解决这个痛点而生的终端 Dashboard:它用一个交互式 TUI 面板,把 Pod、Deployment、Service、Node 等核心资源集中呈现,几乎所有常用操作都能在键盘上几秒内完成。本文带你从安装到进阶配置,实战掌握用 K9s 高效管理 Kubernetes 集群。
一、为什么需要 K9s
kubectl 命令本身没问题,但面对”先看 Pod 状态、再 tail 日志、再 exec 进容器排查、最后改一份 YAML”这种组合动作时,反复拼接命令非常低效。K9s 把这些动作收敛进一个面板:方向键浏览、快捷键操作、实时刷新,视线不用离开终端。它并不替代 kubectl,而是把它”可视化”——底层仍然调用 kubeconfig 对应的集群 API。
二、安装与启动
K9s 是单个 Go 二进制,跨平台支持 macOS、Linux 与 Windows。推荐用包管理器安装,省去手动下载与 PATH 配置:
# macOS
brew install k9s
# Windows (Scoop)
scoop install k9s
# 直接运行,读取当前 kubeconfig 默认 context
k9s
启动后默认进入 Pod 视图,顶部是资源类型与命名空间,中间是列表,底部是快捷键提示栏。按 : 进入命令模式,输入资源名即可跳转,例如 :deploy、:svc、:node、:ns、:ctx。
三、核心快捷键速查
掌握下面这组快捷键,就能覆盖 80% 的日常操作:
| 快捷键 | 作用 |
|---|---|
: + 资源名 | 跳转到对应资源视图(如 :pod) |
l | 查看选中资源的日志(可多容器切换) |
s | 进入容器 exec shell |
d | describe 资源详情 |
y | 查看/复制 YAML |
e | 编辑资源(等效 kubectl edit) |
/ | 在当前视图内过滤 |
ctrl-d | 删除资源(会二次确认) |
四、排障工作流实战
K9s 真正的价值在排障。一个典型场景:生产 Pod 异常,你可以用它把”定位—看日志—进容器”一气呵成。
4.1 快速定位异常 Pod
在 Pod 视图按 / 输入关键词过滤,或按状态排序,瞬间筛出 CrashLoopBackOff、Pending、ImagePullBackOff 的实例。如果你的集群正在经历 CrashLoopBackOff 重启循环、Pod Pending 调度失败、ImagePullBackOff 镜像拉取失败 或 节点 NotReady,K9s 都能让你在面板里直接看到根因线索,而不必反复拼接 kubectl。
4.2 查看日志与进入容器
选中 Pod 后按 l 看日志,按 s 直接 exec 进容器。比起 kubectl exec -it <pod> -c <container> -- sh 的手工拼装,K9s 省掉了记忆参数和复制 Pod 名的步骤,排障路径更短。
五、多集群与命名空间
管理多套环境时,K9s 支持按 context 与命名空间切换:
# 指定集群 context 启动
k9s --context prod-cluster
# 限定命名空间
k9s -n backend
# 面板内切换:命令模式输入
:ctx # 切换集群
:ns # 切换命名空间
如果你用 k3s 搭建边缘集群 或 ArgoCD 做 GitOps 部署,K9s 都是日常巡检的好搭档;结合 etcd 底层存储 与 Kyverno 策略校验 的视角,能从资源层一路下钻到控制面。
六、用配置文件固化习惯
K9s 的配置位于 ~/.k9s/config.yml。最值得开启的是只读模式,避免在生产环境误删误改:
k9s:
# 全局只读,禁止任何写操作(删/改/编辑)
readOnly: true
# 启动时默认进入的命名空间
namespace:
active: default
# 界面皮肤
skin: dracula
此外还可通过 ~/.k9s/plugins.yml 自定义快捷键插件,把常用的 kubectl 子命令挂到面板里,进一步减少上下文切换。
七、安全边界与最佳实践
K9s 的权限完全取决于你当前 kubeconfig 对应的 RBAC,它不会绕过集群授权。建议:生产集群默认开启 readOnly: true;确需改资源时再单独用具备写权限的 context 启动;对关键删除操作(ctrl-d)务必看二次确认。把 K9s 当作”可视化巡检台”而非”随意改配置的游乐场”,才能既高效又安全。关于集群级安全治理,可延伸阅读 Kyverno 策略即代码 与 Velero 集群备份容灾。
八、小结
K9s 用一块终端面板,把 Kubernetes 日常运维中最频繁的动作收敛到键盘上,显著降低命令记忆与上下文切换成本。它不替代 kubectl,而是让后者变得”可见、可点、可追溯”。配合本文提到的只读模式、多集群切换与排障快捷键,你可以把更多精力放在真正的问题定位上,而不是和命令行参数较劲。




