事实上Kubectl是最流行的Kubernetes命令行工具,用于访问Kubernetes集群指标。但是,使用Kubectl获取指标和操作Kubernetes集群需要知道许多命令。尽管命令行接口很健壮,但是命令运行起来很快就会变得很麻烦。例如,下面是一个编辑deployment的命令:
kubectl edit deployment/mydeployment -o yaml --save-config
虽然不是最长的命令,但是多次操作这样的命令会很麻烦。幸运的是,有个开源项目K9s是一个终端UI,可以更快更容易地与k8s集群交互。它抽象了许多常见的kubectl命令,并将它们映射到几个快捷键或鼠标点击上面。
在本教程中,你将学习如何安装K9s并使用它来获取集群指标并帮助管理你的k8s集群。
在Linux发行版上安装k9s
在安装K9s之前,如果还没有安装kubectl,请确保安装了kubectl。本教程将使用一个minikube集群作为示例项目,但是k9s与任何类型的k8s集群都可正常工作。
可以使用homebrew安装:
brew install derailed/k9s/k9s
本教程将重点介绍如何在Linux上使用k9s,但也有一些版本可用于其他操作系统。
通过检查k9s版本确认安装成功。
k9s version
如果K9s安装成功,系统显示如下:
____ __.________
| |/ _/ __ \______
| < \____ / ___/
| | \ / /\___ \
|____|__ \ /____//____ >
\/ \/
Version: v0.27.0
Commit: b5a7cfb3af43a0a79423683094bd33b1b9605faf
Date: 2023-01-26T18:09:55Z
首先,使用k9s -h命令显示所有可用命令。这将帮助你更快地学习k9s,更清楚地了解某些命令。此外,你可以从文档中了解更多关于K9s的信息。
# k9s -h
K9s is a CLI to view and manage your Kubernetes clusters.
Usage:
k9s [flags]
k9s [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
info Print configuration info
version Print version/build info
K9s访问Minikube集群指标
在开始使用k9s之前,让我们启用metrics-server插件,它将允许k9s访问minikube集群指标。使用以下命令允许K9s从minikube集群收集指标:
minikube addons enable metrics-server
将得到以下输出:
! Executing "docker container inspect minikube --format={{.State.Status}}" took
an unusually long time: 6.2066183s
* Restarting the docker service may improve performance.
* The 'metrics-server' addon is enabled
使用K9s UI终端
使用以下命令在终端上启动k9s:
k9s
将得到以下输出,其中显示了kubecconfig中存在的所有集群;K9s将自动从kubecconfig读取与集群相关的信息。然后你可以选择你想要访问的集群:
如果接下来在终端按数字0,你将得到集群中的所有名称空间资源信息:
你可以使用UI表顶部显示的命令在UI终端中查看集群资源信息。
此外,你还可以在键盘上按?键获得所有可用的快捷键:
编辑资源
使用k9s,很容易编辑资源的manifest。通过点击字母e, K9s会进入你选择的资源YAML文件,可在文本编辑器中编辑:
修改内容并保存文件,然后关闭文本编辑器返回K9s终端。
如何使用k9管理集群
设置日志管理系统来简化日志可以帮助你管理和跟踪集群性能和资源问题。日志工具将提供分类日志和稍后检索日志的功能。K9s将显示命名空间的日志。要获取特定命名空间的日志,单击该命名空间,然后单击L键显示日志。
K9s不允许选择文本。如果要复制日志,请按c键。
要显示特定时间范围的日志,请在键盘上输入以下数字:
1:表示最近一分钟的所有日志。
2: 5分钟以上。
3: 15分钟以上。
4: 30分钟以上。
0: pod的整个生命周期。
使用escape键回到主终端界面。
获取关于集群的信息
K9s有一个搜索栏,你可以通过按冒号:并输入你想访问的资源来切换。例如,如果您按下冒号并键入“de”,k9s将自动补全以建议显示deploy资源。如果你想接受建议,请按tab键,然后按enter键访问资源:
要获得在K9s中的位置,请查看K9s UI终端的底部,你将看到当前所在位置。右边的最后一个组件是你当前的位置:
上图显示我目前正在访问pod日志。如果我按下esc键,容器文本将高亮显示为黄色,以表明我现在正在访问容器。
如果你想回退,按下esc键。你还可以在K9s UI的每个部分的顶部获得其他导航功能和任务。
当你需要帮助的时候,按?键以获取可应用于所选资源的所有键。
以下是你肯定会用到的基本导航键:
对对象和资源进行排序可以提高搜索能力。使用以下键对组件进行排序,并快速找到你要找的东西:
描述资源
使用K9s,你不需要输入很长的命令来描述一个命名空间或任何其他Kubernetes资源;只要按下字母d,你就会得到描述:
获取资源指标
K9s使集群管理变得简单,因为它允许你使用:pulses的命令获取已创建的Statefulsets、DaemonSets、deployment和其他资源的数量。这个命令增强了可访问性,你可以在一个窗口中查看资源,而且最重要的是,可以选择要描述或编辑的对象。
总结
在本教程中,学习了如何在Linux上安装K9s,获取关于k8s集群的信息,以及如何使用K9s管理集群。
随着Kubernetes第三方工具和插件的增加,简化了容器编排过程,对于不知道容器是什么的初学者来说,Kubernetes将变得更容易、更友好。K9s已经被证明是一个第三方工具,可以在特定的层面上消除Kubernetes的痛点。它也是一个很好的工具,推荐给那些觉得使用Kubectl管理资源困难的Kubernetes初学者。