K9S简介
K9s是一个命令行界面(CLI)工具,用于管理Kubernetes集群。它是一个流行的开源工具,可以帮助Kubernetes管理员和开发人员轻松管理他们的Kubernetes集群。在本文中,我们将简单介绍K9s的概念、功能和如何使用它。
基本功能
在没有Web版的Dashboard的情况下,您可以使用命令行命令来管理您的Kubernetes集群。这使得您可以轻松地执行各种操作,例如查看资源、编辑资源、删除资源等。
- 资源监视:使用K9s,您可以轻松地监视和管理Kubernetes集群中的各种资源,例如Pod、Deployment、Service和ConfigMap等。
- 资源修改:您可以使用K9s的资源编辑功能来修改这些资源,例如更新Pod的副本数量或更改Service的类型。
- K9s还提供了强大的资源搜索功能,使您可以快速查找特定的资源。
进阶功能
除了这些核心功能之外,K9s还提供了许多其他有用的功能,这些功能可以帮助您更轻松地管理和监视Kubernetes集群,例如:
- 资源过滤
- 上下文切换
- 集群状态监视
- Kubernetes事件跟踪。
现在,让我们看看如何使用K9s。首先,您需要安装K9s工具。您可以从K9s的GitHub页面下载二进制文件,或使用Homebrew、apt-get或yum等包管理器来安装K9s。一旦安装完成,您可以在命令行中键入"k9s"来启动K9s。参考链接
命令详解
以只读权限运行
k9s为用户提供了方便的管理k8s资源的方式,同时也带来了安全上的风险,为了避免误操作对环境造成影响,我们可以在启动k9s时指定参数,以只读方式运行:
k9s --readonly
这样,在k9s界面中,就没有权限对资源进行任何的修改了。
显示帮助信息与键盘组合功能
进入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 命令 |
<y> | 显示资源的yaml 文件内容 | 等同于kubectl get xxx -o yaml 命令 |
<e> | 编辑选中的资源 | 进入编辑后,默认是vim 编辑器,完成后:wq 退出后立即生效 |
<l> | 显示pod的日志 | 显示log的日志信息,可以按<w> 键切换显示的格式(自动换行) |
<ctrl-d> | 删除资源 | 删除前会提示确认 |
<ctrl-k> | 杀死资源 | 强制删除,删除前不会有提示信息 |
<ctrl-w> | 显示资源的更多信息 | 等同于命令kubectl get xxx -o wide |
<ctrl-z> | 切换显示错误资源 | 按一下就只显示状态错误的资源,再按一下就显示所有资源 |
<: 资源类型> | 显示某种类型的所有资源 | 常用的有: : ns (显示所有namespace), : pods (显示所有pods)等, 资源类型可以写全称也可以写缩写,如service 的缩写是svc , statefulset 的缩写是sts , daemonset 的缩写是ds |
<ctrl-c> | 退出k9s | 退出k9s界面工具 |
进阶使用
上面介绍的是一些基本的,常用的键盘组合,实现了大部分的对资源的增删改查功能, 如果你是一个资深的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的具体权限: |
总结
在没有图形界面,只有命令行的条件下, k9s dashboard提供了一套强大的UI Dashboard, 让你远离记忆繁琐的kubect命令的烦恼,让你使用k8s的体验飞升,并且图形化的展示,让你对k8s有了更好的理解。快来试试吧!