简介
在没有Web版的Dashboard的情况下,您可以使用命令行命令来管理您的Kubernetes集群。这使得您可以轻松地执行各种操作,例如查看资源、编辑资源、删除资源等。
资源监视:使用K9s,您可以轻松地监视和管理Kubernetes集群中的各种资源,例如Pod、Deployment、Service和ConfigMap等。
资源修改:您可以使用K9s的资源编辑功能来修改这些资源,例如更新Pod的副本数量或更改Service的类型。
K9s还提供了强大的资源搜索功能,使您可以快速查找特定的资源。
安装
K9s 可用于 Linux、macOS 以及 Windows 平台
Linux
1 | [root@localhost ~]# wget https://github.com/derailed/k9s/releases/download/v0.21.7/k9s_Linux_x86_64.tar.gz |
mac
1 | brew install k9s |
验证
1 | k9s info |
命令详解
以只读权限运行
k9s为用户提供了方便的管理k8s资源的方式,同时也带来了安全上的风险,为了避免误操作对环境造成影响,我们可以在启动k9s时指定参数,以只读方式运行:
1 | k9s --readonly |
显示帮助信息与键盘组合功能
进入K9S命令行界面后,直接输入?(注意不是: ?), 会显示如下的帮助界面,提示了每个键盘组合的功能, 请注意,在不同界面下, 按下?键显示的是对当前界面的帮助提示,下面的截图是在alias界面下的帮助信息

基本使用
| 键盘组合 | 功能 | 详细说明 |
|---|---|---|
<c> | 复制选中的内容 | 只会复制其中一个Column, 例如如果在Pods界面,则只会复制Pod的Name, 可以在剪切板中使用 |
<ctrl-r> | 刷新当前显示的界面 | 刷新当前界面显示的资源及其状态 |
<shift-key> | 按某个column排序显示 | 如在pods界面,想要按pod名排序,可以按下<shift-n>,如果想按CPU占用排序,可以按下<shift-c>, 想要按IP地址排序,可以按下<shift-i>, 注意,排序时不能打开大写锁,否则功能会不一样,例如shift-I的功能不是按IP地址排序,而是修改pod的image |
<space> | 标记选中资源 | 被标记的资源会在k9s界面中高亮显示 |
<d> | 显示资源描述 | 等同于运行kubectl describe命令 |
<v> | view | |
<y> | 显示资源的yaml文件内容 | 等同于kubectl get xxx -o yaml命令 |
<e> | 编辑选中的资源 | 进入编辑后,默认是vim编辑器,完成后:wq退出后立即生效 |
<l> | 显示pod的日志 | 显示log的日志信息,可以按<w>键切换显示的格式(自动换行)0和 w,0代表查看日志的尾部,即最新日志,w代表日志自动换行。 |
<s> | 快速访问(bash) | 该命令等价于kubectl exec pod /bin/sh。先用ESC退回Pod界面,再按下s,就会进入到容器的Shell命令行。如果一个Pod包含了多个Container,则会进入Container界面让你选择要进入的Container。 |
<r> | 重新启动资源 | 重新启动资源(例如,重新启动 Pod)。 |
<ctrl-d> | 删除资源 | 删除前会提示确认 |
<ctrl-k> | 杀死资源 | 强制删除,删除前不会有提示信息 |
<ctrl-w> | 显示资源的更多信息 | 等同于命令kubectl get xxx -o wide |
<ctrl-z> | 切换显示错误资源 | 按一下就只显示状态错误的资源,再按一下就显示所有资源 |
ctrl-a or :alias | 显示集群所有的资源和它们的缩写 | 例如service的缩写是svc |
<: 资源类型> | 显示某种类型的所有资源 | 常用的有: : ns(显示所有namespace),: deploy (显示所有deployment), : pods(显示所有pods)等, 资源类型可以写全称也可以写缩写,如service的缩写是svc, statefulset的缩写是sts, daemonset的缩写是ds.同时也可以在deploy界面输入 <s>进行调整副本数,如下:![]() |
<ctrl-c> or :q | 退出k9s | 退出k9s界面工具 |
/<filter> | 过滤 | 例如输入 /nginx,则过滤所有包含nginx字样的资源 |
/!filter | 逆过滤器 | 去除所有匹配的资源。不支持日志过滤 |
/-l label-selector⏎ | 根据labels过滤资源 | |
/-f filter | 模糊匹配过滤 | |
<esc> | 退出 浏览/命令/过滤 模式 | |
Shift+f | 等同于kubectl port-forward | exit退出命令行界面输入快捷键Shift+f进入PortForward界面。此时使用 Tab进行上下切换。确认后本地开一个新的终端访问测试即可。 |
:po⏎ | 用资源名或者缩写来浏览某一类资源 | 接受单数、复数、缩写或者别名。例如po,pod,pods,v1/pods |
:po namespace ⏎ | 在指定的ns里面浏览资源 |
进阶使用
上面介绍的是一些基本的,常用的键盘组合,实现了大部分的对资源的增删改查功能, 如果你是一个资深的kubernetes管理员,你通常还需要关心:
- 多个集群的管理
- 集群状态监控
- 快速过滤关注的资源
- kubernetes事件的跟踪
| 键盘组合 | 功能 | 详细说明 |
|---|---|---|
<: ctx> | 查看kubernetes上下文列表(即集群列表) | 查看所有可访问的k8s集群,选中某个集群后回车可使用其配置文件,连接对应的集群 |
<: ctx name> | 连接指定K8S集群 | 连接到name指定的k8s上下文名称的集群 |
<: pulses>/<: pu> | 集群监控面板 | 如图可以显示集群的资源使用情况以及健康状态,如下图,显然有一个pod处于错误状态,根据顶部提示,按4可以进入到pods界面查看,再按<ctrl-z>可以查看错误的pod![]() |
<: xray resource_type [namespace]> | 查看资源关联关系 | 如:<: xray deployments>, <: xray deployments default>, 分别是查看所有namespace/指定namespace下以deployments为维度的各资源的联系,不同的资源类型会用不同的图标表示,如下图:![]() |
<: popeye> | 集群状态评分 | 集群的每个资源都会被评分(0 - 100),综合起来会给集群一个整体评分(0-100)和等级(A/B/C),如下图: 选中某项具体的资源,按下回车键,会显示更加详细的评价信息,如选中daemonsets, 会显示具体扣分的原因,如下图,会因为没有为port命名和没有设置资源限制而影响评分![]() |
<: crb>/<: clusterrolebinding> | 查看RBAC | 可以直观的查看集群的RBAC信息, 执行命令后,可以选中某个具体的Clusterrolebinding, 回车查看详细权限,如下图, 查看k9s这个clusterrole的具体权限:![]() ![]() |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!