深色模式
集群管理 Lens / k9s
面向需要在命令行与图形界面之间选择集群日常管理工具的工程师。覆盖两者定位差异、安装、高频操作与安全注意事项。
适用版本与前提
- Kubernetes:v1.28+
- k9s:命令行 TUI(跨平台)
- Lens:桌面 GUI(原开源 Lens,现 Lens / OpenLens,
[版本相关]) - 前提:本地已有 kubeconfig 并能访问集群
背景与问题
kubectl 很强,但在"巡视集群"这件事上效率不高:
- 想持续观察一批 Pod 的状态变化 → 要反复
kubectl get pods -w。 - 想看某个 Pod 的日志、事件、描述 → 要敲三四个命令。
- 想同时看多个集群 → 要切 context,容易搞混。
Lens 与 k9s 分别用 GUI 和 TUI 解决了这个问题,但二者定位差异很大,选错会浪费时间。
核心概念与定位对比
| 维度 | k9s | Lens |
|---|---|---|
| 形态 | 终端 TUI | 桌面 GUI |
| 启动速度 | 快 | 较慢 |
| 适用环境 | 服务器/堡垒机/纯终端 | 本地桌面 |
| 多集群 | 支持切换 | 工作区概念更强 |
| 资源占用 | 低 | 较高 |
| 学习曲线 | 短(键盘为主) | 短(鼠标为主) |
建议
在生产跳板机/服务器上用 k9s(无需图形、启动快);在本地桌面做多集群巡检和给新人演示时用 Lens。二者不是二选一,而是场景互补。
生产实践
安装
bash
# k9s(示例:Linux 下载二进制)
curl -sL https://github.com/derailed/k9s/releases/latest/download/k9s_Linux_amd64.tar.gz | tar xz
sudo mv k9s /usr/local/bin/
k9s version1
2
3
4
2
3
4
text
# Lens:从官网下载对应平台安装包,安装后导入 kubeconfig
# 具体下载与安装以官方文档为准 [版本相关]1
2
2
k9s 高频用法
bash
k9s # 进入默认 context
k9s --context prod-cluster # 指定 context
k9s -n prod # 指定命名空间1
2
3
2
3
常用快捷键:
| 按键 | 作用 |
|---|---|
:pods / :deploy / :svc | 跳转到资源视图 |
/<名称> | 搜索过滤 |
l | 查看日志 |
d | describe |
e | 编辑资源 |
s | shell 进入容器 |
ctrl-d | 删除资源(危险) |
:ctx | 切换 context |
:ns | 切换命名空间 |
生产危险
k9s 的删除/编辑操作会立即作用于当前 context 指向的真实集群。在持有生产 kubeconfig 的机器上操作时,务必先确认左上角 context 与命名空间正确——误删是最常见事故。
Lens 高频用法
- 多集群工作区:把生产/测试集群分到不同工作区,降低误操作概率。
- 内置指标:需集群内已部署 Prometheus/metrics-server,否则图表为空。
- 资源树与事件视图:适合快速定位 Pending/CrashLoop 的原因。
验证
bash
# k9s
k9s version
k9s info # 查看配置/日志路径,便于排障
# Lens:确认能列出资源;若为空,检查 kubeconfig 与 RBAC
kubectl auth can-i list pods -A1
2
3
4
5
6
2
3
4
5
6
回滚与清理
bash
# k9s
rm -f /usr/local/bin/k9s
rm -rf ~/.local/share/k9s ~/.config/k9s # 路径随版本/平台而异 [版本相关]
# Lens:按平台卸载,并清理工作区配置与缓存1
2
3
4
5
2
3
4
5
故障排查
| 现象 | 定位 |
|---|---|
| k9s 空白/报 RBAC 错误 | kubectl auth can-i list <resource>;工具用的是你的 kubeconfig 权限 |
| Lens 指标为空 | 集群未装 metrics-server / Prometheus,或 Lens 未正确配置数据源 |
| 看不到某些资源 | CRD 未安装或权限不足 |
| 连错集群 | 确认当前 context(k9s :ctx,Lens 工作区) |
| k9s 日志乱码/渲染异常 | 终端类型/宽高问题,检查 TERM 与窗口尺寸 |
bash
kubectl config current-context
kubectl auth can-i list pods -A
kubectl top nodes # 确认 metrics-server 是否可用1
2
3
2
3
安全与合规
- 工具继承你的 kubeconfig 权限。给 GUI 工具导入生产 kubeconfig,等于把该凭证暴露给桌面环境;建议使用受限角色而非
cluster-admin。 - 生产环境优先用只读角色做巡检,需要变更时再切换高权限 context。
- GUI 工具可能缓存集群数据到本地,涉密环境需评估数据落盘风险。
- 禁止在共享/跳板机上把 Lens 长期登录多个生产集群。
性能、容量与成本
- Lens 资源占用明显高于 k9s,在低配机器上可能卡顿。
- 频繁轮询会在大集群上给 apiserver 带来额外请求压力;可适当调整刷新频率或限制监听范围。
替代方案与权衡
| 方案 | 特点 |
|---|---|
kubectl + 脚本 | 无额外依赖,适合自动化 |
| k9s | 终端高效巡视,适合服务器环境 |
| Lens | GUI 友好、多集群,适合桌面 |
| 自研控制台/ Kuboard 类 | 统一平台,适合团队协作与权限收口 |
参考资料
- k9s 官方文档,访问日期:2026-10-09。
- k9s GitHub 仓库,访问日期:2026-10-09。
- Lens 官方网站,访问日期:2026-10-09。
- Kubernetes 官方文档:用 RBAC 鉴权,访问日期:2026-10-09。