概述
K9s 是一个强大的 Kubernetes CLI 工具,提供直观的终端 UI 界面,让集群管理变得轻松高效。相比传统的 kubectl 命令,K9s 提供实时监控、快捷操作和资源管理等功能。
核心特性:
- 🖥️ 终端 UI 界面,无需 Web Dashboard
- ⚡ 实时资源监控和日志查看
- 🔍 强大的搜索和过滤功能
- 📊 集群健康状态评分
- 🔐 支持多集群管理
适用场景:
- 日常集群运维管理
- 快速故障排查
- 资源状态监控
- 多集群切换
官方仓库: https://github.com/derailed/k9s
安装
Linux
1 2 3 4 5 6 7 8
| wget https://github.com/derailed/k9s/releases/download/v0.32.0/k9s_Linux_amd64.tar.gz
tar -zxf k9s_Linux_amd64.tar.gz -C /usr/local/bin
k9s version
|
macOS
1 2 3 4 5
| brew install k9s
sudo port install k9s
|
Windows
1 2 3 4 5
| choco install k9s
scoop install k9s
|
验证安装
基础操作
启动 K9s
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| k9s
k9s --readonly
k9s -n kube-system
k9s --kubeconfig ~/.kube/config
k9s --context my-cluster
|
界面导航
基本导航快捷键:
| 快捷键 | 功能 | 说明 |
|---|
? | 显示帮助 | 查看当前界面的所有快捷键 |
:资源类型 | 切换资源视图 | 如 :pods, :deploy, :svc |
Esc | 返回上一级 | 退出当前模式或界面 |
Ctrl+C | 退出 K9s | 完全退出程序 |
:q | 退出 | 同 Ctrl+C |
资源查看
常用资源快捷输入:
1 2 3 4 5 6 7 8 9
| :alias :pods :po :deploy :svc :ns :nodes :cm :secrets
|
指定命名空间查看:
1 2
| :pods default :deploy kube-system
|
核心功能
资源操作
基础操作快捷键:
| 快捷键 | 功能 | 说明 |
|---|
d | 查看描述 | 等同于 kubectl describe |
y | 查看 YAML | 等同于 kubectl get -o yaml |
e | 编辑资源 | 使用 vim 编辑,:wq 保存生效 |
v | 查看详情 | View 模式 |
l | 查看日志 | 查看 Pod 日志 |
s | Shell 访问 | 等同于 kubectl exec -it |
Ctrl+D | 删除资源 | 需要确认 |
Ctrl+K | 强制删除 | 无需确认 |
高级操作:
| 快捷键 | 功能 | 说明 |
|---|
Ctrl+R | 刷新界面 | 刷新当前资源状态 |
Ctrl+W | Wide 模式 | 显示更多信息列 |
Ctrl+Z | 切换错误资源 | 只显示异常状态资源 |
Space | 标记资源 | 高亮显示选中资源 |
c | 复制内容 | 复制当前列的值 |
排序和过滤
排序功能:
| 快捷键 | 排序依据 | 说明 |
|---|
Shift+N | 按名称排序 | Name |
Shift+C | 按 CPU 排序 | CPU 使用量 |
Shift+M | 按内存排序 | Memory 使用量 |
Shift+I | 按 IP 排序 | IP 地址 |
Shift+A | 按 Age 排序 | 创建时间 |
过滤功能:
1 2 3 4
| /nginx /!nginx /-l app=nginx /-f nginx
|
过滤示例:
1 2 3 4
| /Running /!Running /-l tier=frontend
|
日志查看
日志操作:
| 快捷键 | 功能 | 说明 |
|---|
l | 查看日志 | 打开日志视图 |
0 | 跳转到最新 | 查看最新日志 |
w | 自动换行 | 切换日志换行模式 |
f | 跟随日志 | 实时滚动显示 |
/ | 搜索日志 | 搜索特定内容 |
Esc | 退出日志 | 返回资源列表 |
日志查看技巧:
Shell 访问
进入容器:
端口转发
端口转发操作:
| 快捷键 | 功能 | 说明 |
|---|
Shift+F | 端口转发 | 设置 port-forward |
Tab | 切换选项 | 在端口转发界面切换 |
Enter | 确认转发 | 开始端口转发 |
使用步骤:
1 2 3 4
| 1. 在 Pod/Service 视图按 Shift+F 2. 输入本地端口和容器端口 3. 按 Enter 确认 4. 在新终端访问 localhost:port
|
Deployment 操作
扩缩容:
1 2 3 4 5
| 1. 选中 Deployment 2. 按 s 进入扩缩容模式 3. 输入副本数 4. 按 Enter 确认
|
进阶功能
多集群管理
切换集群:
集群列表操作:
集群监控面板
Pulse 监控:
监控面板功能:
- 📊 实时资源使用率
- 🔴 异常 Pod 快速定位
- 📈 历史趋势图表
- ⚡ 按数字键快速跳转
资源关联视图
XRay 视图:
1 2 3
| :xray deployments :xray deployments default :xray pods
|
关联关系可视化:
1 2 3 4 5 6 7
| Deployment ├── ReplicaSet │ ├── Pod (Running) │ ├── Pod (Running) │ └── Pod (Error) └── Service └── Endpoints
|
集群健康评分
Popeye 扫描:
评分维度:
| 检查项 | 说明 | 扣分原因 |
|---|
| 资源限制 | CPU/Memory Limits | 未设置资源限制 |
| 健康检查 | Liveness/Readiness | 缺少探针配置 |
| 安全配置 | SecurityContext | 以 root 运行 |
| 端口命名 | Port Names | 端口未命名 |
| 标签规范 | Labels | 缺少推荐标签 |
查看详细建议:
RBAC 权限管理
查看权限:
1 2 3 4
| :rb :crb :role :clusterrole
|
权限查看操作:
最佳实践
安全模式
只读模式启动:
配置文件
K9s 配置文件位置:
1 2
| ~/.config/k9s/config.yml %APPDATA%\k9s\config.yml
|
自定义配置示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| k9s: refreshRate: 2 maxConnRetry: 5 readOnly: false namespace: active: default favorites: - default - kube-system - monitoring hotkey: shift-0: shortCut: Shift-0 description: View pods command: pods
|
常用工作流
故障排查流程:
1 2 3 4 5 6 7
| 1. :pulses 2. 按 4 3. Ctrl+Z 4. 选中异常 Pod 5. 按 d 6. 按 l 7. 按 s
|
日常巡检流程:
1 2 3 4 5 6
| 1. :popeye 2. :nodes 3. :pods 4. Shift+C 5. Shift+M 6. :events
|
快捷键速查表
全局快捷键
| 快捷键 | 功能 | 说明 |
|---|
? | 帮助 | 显示当前界面快捷键 |
:资源 | 跳转 | 切换到指定资源视图 |
/过滤 | 过滤 | 过滤资源列表 |
Esc | 返回 | 退出当前模式 |
Ctrl+C | 退出 | 退出 K9s |
Ctrl+A | 别名 | 显示所有资源别名 |
资源操作
| 快捷键 | 功能 | 说明 |
|---|
d | 描述 | kubectl describe |
y | YAML | 查看 YAML 定义 |
e | 编辑 | 编辑资源 |
v | 查看 | View 模式 |
l | 日志 | 查看 Pod 日志 |
s | Shell | 进入容器 Shell |
Ctrl+D | 删除 | 删除资源(需确认) |
Ctrl+K | 强删 | 强制删除 |
视图控制
| 快捷键 | 功能 | 说明 |
|---|
Ctrl+R | 刷新 | 刷新当前视图 |
Ctrl+W | Wide | 显示更多列 |
Ctrl+Z | 错误 | 只显示异常资源 |
Space | 标记 | 高亮标记资源 |
Shift+F | 转发 | 端口转发 |
故障排查
常见问题
问题1:无法连接集群
1 2 3 4 5 6 7 8
| kubectl config view
kubectl config current-context
k9s --kubeconfig ~/.kube/config
|
问题2:权限不足
1 2 3 4 5
| kubectl auth can-i --list
k9s --readonly
|
问题3:中文显示乱码
1 2 3 4 5
| export LANG=zh_CN.UTF-8 export LC_ALL=zh_CN.UTF-8
|
总结
K9s 核心优势:
| 特性 | 优势 | 场景 |
|---|
| 终端 UI | 无需图形界面 | SSH 远程管理 |
| 实时监控 | 资源状态实时刷新 | 生产环境监控 |
| 快捷操作 | 键盘快捷键高效 | 日常运维管理 |
| 多集群 | 快速切换集群 | 多环境管理 |
| 健康评分 | 自动发现问题 | 集群巡检 |
学习建议:
- ✅ 从基本查看操作开始(
:pods, :deploy) - ✅ 掌握核心快捷键(
d, y, l, s) - ✅ 使用过滤功能快速定位(
/, /-l) - ✅ 熟悉进阶功能(
:pulses, :popeye) - ✅ 生产环境使用只读模式(
--readonly)
快速上手:
1 2 3 4 5 6 7 8 9 10 11 12 13
| brew install k9s
k9s --readonly
:pods
?
|