1、简介
通常情况下,我们自行部署 k8s 集群之后,要么使用 kubectl 命令做集群管理,要么使用 UI 管理界面来管理集群。最近,发现了一个基于终端且比较好用的项目,它让我们快速查看、导航、观察并解决日常我们使用 Kubernetes 中的一些问题,这就是 k9s 项目。k9s相较于同类一些K8S管理工具更轻量化,但功能却都很实用,它是一个用来监控整个K8s上运行pod资源的命令行工具,它的整个界面有点类似于htop,能够非常实时地监控k8s上所有资源的运行情况,它是开源的,因为是用go语言编写,所以使用上面来说也是非常的简单容易上手的。
2、特征
自定义配置:K9s 提供了许多自定义选项,包括 UI 的配色方案。用户可以通过编辑配置文件来调整这些选项,以适应个人的需求和偏好。
版本控制:用户可以调整放置 config.yml 文件的位置,这样可以将其存储在版本控制系统中,便于跟踪和管理配置的变更。
自定义别名和热键:为了提高效率,用户可以在 alias.yml 文件中添加自定义别名,在 hotkey.yml 文件中创建自定义热键。
插件系统:K9s 支持插件,用户可以利用现有的插件或编写自己的插件来扩展 K9s 的功能。
资源监控:K9s 允许用户观察系统资源使用情况,并在各种资源之间切换,这对于管理和调试 Kubernetes 集群非常有用。
清单和日志查看:用户可以通过 K9s 检查 Kubernetes 集群中的清单、日志和监控信息,这有助于更好地理解和分析集群的状态和性能。
3、安装
[root@mast01 ~]# wget https://github.com/derailed/k9s/releases/download/v0.26.7/k9s_Linux_x86_64.tar.gz
[root@mast01 ~]# tar -xzvf k9s_Linux_x86_64.tar.gz
LICENSE
README.md
k9s
ls
[root@mast01 ~]# cp -rp k9s usr/local/bin/
[root@mast01 ~]# k9s version
____ __.________
| |/ _/ __ \______
| < \____ ___/
| | \ \___ \
|____|__ \ ____//____ >
\/ \/
Version: v0.26.7
Commit: 37569b8772eee3ae29c3a3a1eabb34f459f0b595
Date: 2022-10-18T15:02:30Z
4、快捷键
K9s使用别名来定位到大多数K8s资源,这里贴出K9S官方的按键绑定

5、命令
# 启动k9s
k9s
# 列出所有可用的 CLI 选项
k9s help
# 获取有关 K9s 运行时间的信息(日志、配置等)。
k9s info
# 在一个现有的kubeconfig上下文中启动k9s
k9s --context <your_context>
# 在指定的命名空间中运行k9s
k9s -n <your_namespace>
# 以只读模式启动K9s--禁用所有集群修改命令
k9s --readonly
# 退出k9s
q 或者 quit
6、快速查看不同的 Kubernetes 资源
输入冒号(:
)键时,就可以使用很多快捷方式

:svc
:跳转到服务视图

:deploy
:跳转到部署视图

:rb
:跳转到角色绑定视图,用于 基于角色的访问控制(RBAC)管理

:namespace
:跳转到命名空间视图

<!--注意:这个应用最常用的工具是键盘;要在任何页面往上或下翻页,请使用方向键。如果你需要退出,记得使用 Vim 绑定键,键入 `:quit`,然后按回车键离开。-->
7、自定义命令别名
看到这里了,是时候带大家真正秀一波K9s的”骚操作“了。掌握了K9s的基本用法,我们可以定制自己的K9s命令了!下面我们接着一起定制一个。在配置文件config.yml
同级目录$HOME/.config/k9s/
下,创建一个名为alias.yml
的文件:别名/简称/缩写是相同的意思,这里只是为了便于大家理解
[root@mast01 ~]# $HOME/.config/k9s/alias.yml
alias:
# 使用pp作为Pod的别名
pp: v1/pods
# 使用crb作为 ClusterRoleBinding的缩写
crb: rbac.authorization.k8s.io/v1/clusterrolebindings
# 使用cr作为ClusterRole的简称
cr: rbac.authorization.k8s.io/v1/clusterroles
# 使用dep作为Deployments的别名
dep: apps/v1/deployments
# 使用fred作为自定义资源CRD Frederick的别名
fred: acme.io/v1alpha1/fredericks
8、自定义快捷键
进入命令模式并输入资源名称或别名对于浏览经常访问的资源可能很麻烦。通过利用hotkeys
,可以将K9s配置为快速导航到我们的K8s资源。同样的,这里我们也可以在$HOME/.config/k9s/config.yml
目录下创建一个名为/hotkey.yml
的文件,来定制我们自己的快捷键
[root@mast01 ~]# $HOME/.config/k9s/hotkey.yml
hotKey:
# 点击Shift-0导航到pod视图
shift-0:
shortCut: Shift-0
description: Viewing pods
command: pods
# 点击Shift-1导航到deployments视图
shift-1:
shortCut: Shift-1
description: View deployments
command: dp
# 点击Shift-2导航到xray deployments视图
shift-2:
shortCut: Shift-2
description: XRay Deployments
command: xray deploy
<!--同样的,后面你可以基于此方法,自定义插件对K9s进行扩展,也是通过在`$HOME/.config/k9s/`目录下,创建一个名为`plugin.yml`的文件。-->
欢迎大家扫码关注:

本公众号只写原创,不接广告、不接广告、不接广告。下期小伙伴想学习什么技术,可以私信发我吆。





