📜 引言:
- 磨刀不误砍柴工
- 工欲善其事必先利其器
像我这种,kubectl
用的不是非常溜,经常会碰到以下情况:
--help
,再敲命令,效率低-n
指定 namespacekubectl exec -it...
如果你的工作机(前置机、跳板机、操作机、堡垒机…)只是 Linux Shell,而没有桌面环境。那么我强烈推荐你使用这个 K8S 实用工具:终端 UI K9S。
K9S:K9s 是一个基于终端的 UI,用于与 Kubernetes 集群进行交互。这个项目的目的是使导航、观察和管理已部署的应用程序变得更容易。K9s 持续监视 Kubernetes 的变化,并提供后续命令与观察到的资源进行交互。
直接从 release 页面下载对应版本解压到 /usr/local/bin
即可。
安装后直接运行 k9s
,就会进入 UI 界面,如下图:
操作 | 命令 | 备注 |
---|---|---|
显示活跃的键盘助记符和帮助 | ? |
|
显示集群上所有可用的别名和资源 | ctrl-a or :alias |
|
退出 K9s | :q , ctrl-c |
|
使用单数/复数或短名称查看Kubernetes 资源 | : po⏎ |
接受单数,复数,短名或别名如 pod 或 pods |
查看给定名称空间中的Kubernetes 资源 | : alias namespace⏎ |
|
过滤出给定过滤器的资源视图 | / filter⏎ |
支持 Regex2,如fred | blee 来过滤命名为fred 或 blee 的资源 |
反向正则表达式过滤器 | / ! filter⏎ |
保留所有不匹配的东西。日志未实现。 |
按标签过滤资源视图 | / -l label-selector⏎ |
|
模糊查找给定的资源 | / -f filter⏎ |
|
退出视图/命令/过滤模式 | <esc> |
|
键映射来描述(describe),查看(view),编辑(edit),查看日志(logs),… | d ,v , e , l ,… |
|
查看并切换到另一个Kubernetes上下文 | : ctx⏎ |
|
查看并切换到另一个Kubernetes上下文 | : ctx context-name⏎ |
|
查看并切换到另一个 Kubernetes 名称空间 | : ns⏎ |
|
查看所有已保存的资源 | : screendump or sd⏎ |
|
要删除资源(按TAB 键并输入Enter ) |
ctrl-d |
|
杀死一个资源(没有确认对话框!) | ctrl-k |
|
切换宽列 | ctrl-w |
等同于 kubectl ... -o wide |
切换错误状态 | ctrl-z |
查看有错误的资源 |
运行 pulses(脉冲)视图 | : pulses or pu⏎ |
|
运行 XRay(X 光)视图 | : xray RESOURCE [NAMESPACE]⏎ |
资源可以是以下之一:po, svc, dp, rs, sts, ds, NAMESPACE 参数可选 |
运行 Popeye(评估跑分) 视图 | : popeye or pop⏎ |
参阅 https://popeyecli.io |
花个 10 - 30 分钟熟悉快捷键,然后 —— 超级爽,各种快速进入、查找、切换、看 yaml、看日志、滚动日志、进 shell、编辑、复制 …
强烈推荐花时间熟悉,你会感觉效率飞升。🤓🤓🤓
它的过滤功能非常强大,使得你可以非常快速的定位资源,比如我想要看 traefik 的所有 CRD,操作如下:
ctrl-a /traefik
更多过滤功能,可以自己试一试,进一步研究。
:pulse
就进入这个模式,这个就是一个监控 Dashboard,如下图:
可以非常直观看到集群现在的健康情况 —— 明显现在我的 Events 有异常,直接按 5⏎
, 再按 ctrl-z
查看异常事件:
XRay 会提供以某个 Kubernetes 资源为维度的关联关系,像 X 光一样,透射到资源的内部。如下图:
以 traefik deployment 为例,位于 kube-system ns,启动了一个 traefik-97b44b794-7qvzk
pod,pod 只有一个 traefik
container,并通过 ServiceAccount traefik
挂载了 secret traefik-token-r7vd2
。
Popeye(大力水手)就是为集群、以及集群内的每隔资源打分,分数从 0 - 100,最后根据得分评出你的集群的情况:得分是 A 还是 C,并给出具体原因。
如下:
DaemonSet 得 0 分原因是都没指定 requests 和 limits:
Service 得 20 分原因就多了,甚至还贴心考虑到了开销贵不贵的问题:
RBAC 的 yaml 看起来很不方便的,如果对权限比较要求比较多,那 K9S 绝对好用直观,如下,traefik role 有哪些权限一目了然:who、what、how。
K9S 是一个基于终端的 K8S UI,在没有桌面、只有 终端的情况下使用它,可以大幅提升你的效率以及你对 K8S 的认知。
它有很多强大的功能,其中:快捷键、过滤、Pulses、XRay、Popeye、RBAC 这些功能一定要试一试,体验飞升!
一起使用吧~ 🤓🤓🤓
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.