文章首发于个人公众号:「阿拉平平」
之前我向大家介绍过一款 K8s 的 IDE:Lens。通过图形界面,我们可以很方便地管理多个集群。不过有的小伙伴可能更习惯使用 kubectl
去管理集群,所以今天和大家分享一个高效管理 K8s 集群的命令行工具:K9s。
本文演示环境为 CentOS 7.4,K9s 版本为 0.21.7,K8s 集群托管在阿里云上。
快速开始
简介
K9s 提供了一个与 K8s 集群交互的终端 UI,用于简化导航、观察以及管理应用程序。K9s 会持续监控 K8s 的变化,并提供后续命令与所观察到的资源进行交互。
安装
K9s 可用于 Linux、macOS 以及 Windows 平台。我使用的是 Linux 系统,安装方法如下:
[root@localhost ~]# wget https://github.com/derailed/k9s/releases/download/v0.21.7/k9s_Linux_x86_64.tar.gz
[root@localhost ~]# tar -zxf k9s_Linux_x86_64.tar.gz -C /usr/local/bin
获取 K9s 信息:
[root@localhost ~]# k9s info
____ __.________
| |/ _/ __ \______
| < \____ / ___/
| | \ / /\___ \
|____|__ \ /____//____ >
\/ \/
Configuration: /root/.k9s/config.yml
Logs: /tmp/k9s-root.log
Screen Dumps: /tmp/k9s-screens-root
启动
与 kubectl 相同,K9s 启动时会读取默认的 kubeconfig
。
[root@localhost ~]# k9s
如果有多个 config 文件,可以通过 --kubeconfig
指定。
[root@localhost ~]# k9s --kubeconfig=/srv/.kube/config
启动后界面如下:
使用示例
我之前在集群上安装了携程开源的配置中心 apollo
,现在试试用 K9s 管理相关资源。
指定命名空间
目前 K9s 会罗列出所有命名空间下的 Pods,而 apollo 的资源都安装在 kube-public
下,所以启动时指定下命名空间:
[root@localhost ~]# k9s -n kube-public
指定命名空间后 Pods 显示如下:
如果启动时指定了命名空间,之后就可以用数字键切换。
编辑资源
现在试下用 K9s 编辑资源,增加 admin-server
的副本数。
这里的 admin-server 是一个 Deployment,所以需要输入 :deploy
进入到 deployment 视图里。
选择 admin-server,输入 e
进行编辑。可以看到,副本数已经增加到 2 了:
除了编辑资源的方式,也可以输入 s
调整副本数:
查看日志
由于刚刚添加了一个副本,我们查看下服务启动的日志。
选择 admin-server,输入 l
查看日志:
可以看到,服务启动正常,没有报错。
获取帮助
K9s 自带了许多快捷键,可以通过输入 ?
获取帮助。
写在最后
与 kubectl 相比,K9s 的功能无疑更为强大,算是一款管理 Kubernetes 集群的利器了。除了文中介绍的部分,K9s 自定义的功能也非常强大,支持自定义别名、快捷键以及皮肤,这里就不展开了。
References
[1] GitHub: https://github.com/derailed/k9s
[2] Speed up administration of Kubernetes clusters with k9s: https://opensource.com/article/20/5/kubernetes-administration
[3] K9s如何加速Kubernetes的集群管理: https://juejin.im/post/6847902224983539720