如何为Kubernetes配置多功能终端?


Kubernetes内置了非常不错的CLI包。对于基础操作足够用了,但是对于一些高阶用户,就显得不够用了。Kubernetes社区开发了kube ops viewGrafana等基于Web的监控工具,但是如果有一个基于终端的工具会大幅度提高错误定位效率,就跟瑞士军刀一样实用。

以下列出了我的苹果终端中安装的开源工具,用起来得心应手。这些小工具我基本上每天都会用到。

准备工作

建议配置这些工具之前先安装ZSH,对苹果系统来说非常棒的开源shell,功能非常丰富而且很炫酷。

k9s

1.png

k9s是Kubernetes集权管理最棒的CLI工具,可以通过key直接SSH进入Pod,查阅日志,删除资源等。k9s提供大量日常操作,是Kubernetes必备工具。如果你想和更多Kubernetes技术专家交流,可以加我微信liyingjiese,备注『加群』。群里每周都有全球各大公司的最佳实践以及行业最新动态

kubectx

k9s不支持Kubernetes集群config上下文之间切换,对于经常管理多个Kubernetes集群用户来说不太方便。kubectx可以提供如下操作命令进行上下文切换:
kubectl config use-context my-context

当然有些前提条件:
  • 需要知道集群名
  • 有类似于set-context的命令行


kubectx是替换命令,如果单独运行,会列出.kube/config中的所有上下文,需要从中选择一个继续运行:
kubectx my-context

不需要记住这些上下文,也不需要手工选择上下文,避免出现错误命令,简单又有效。跟k9s配合,提供强大的功能组合。

kubens

搞定上下文后,可以深入到特定的命名空间,因为集群内部有很多命名空间。ahmetb先生(kubectx的贡献者)再次提供了kubens,用于命名空间的操作。
kubens kube-system

随后的命令默认都是基于选择的命名空间进行的。单独运行kubens会列出所有命名空间名字。

kube-ps1

如何确认在哪个上下文和命名空间操作呢?需要用如下命令:
kubens
kubectx
kubectl <my-command>

为了简化,ps1是zsh中自动显示上下文和命名空间的插件:
2.png

有了它就可以不用命令看出目前运行的上下文和命名空间。这个插件也是高度可配置的,可以同时看上下文和命名空间,或者只看一个,或者完全关闭。

popeye

popeye是自动扫描repo中资源并将问题高亮出来的工具,这是一个很新但很有用的功能。如果需要清理集群内问题,最好安装这个工具。
3.png

stern

如果有需求用kubectl一次看多个Pod的日志,可以用stern这个工具将日志从多个Pod中拉出来,非常方便实用。

原文链接:How to set up a serious Kubernetes terminal(翻译:杨峰)

0 个评论

要回复文章请先登录注册