![18c447e547ebe42c8f4ec8679f976ee0.png](https://img-blog.csdnimg.cn/img_convert/18c447e547ebe42c8f4ec8679f976ee0.png)
Kubernetes内置了非常不错的CLI包。对于基础操作足够用了,但是对于一些高阶用户,就显得不够用了。Kubernetes社区开发了kube ops view[1]、Grafana[2]等基于Web的监控工具,但是如果有一个基于终端的工具会大幅度提高错误定位效率,就跟瑞士军刀一样实用。以下列出了我的苹果终端中安装的开源工具,用起来得心应手。这些小工具我基本上每天都会用到。
准备工作建议配置这些工具之前先安装ZSH[3],对苹果系统来说非常棒的开源shell,功能非常丰富而且很炫酷。
k9s
![e597280b1571c37e25fb59a78ca06482.png](https://img-blog.csdnimg.cn/img_convert/e597280b1571c37e25fb59a78ca06482.png)
k9s是Kubernetes集权管理最棒的CLI工具,可以通过key直接SSH进入Pod,查阅日志,删除资源等。k9s提供大量日常操作,是Kubernetes必备工具。
kubectxk9s不支持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
为了简化,ps1是zsh中自动显示上下文和命名空间的插件:
![e6bf1e9043a1604212944919e8ff805c.png](https://img-blog.csdnimg.cn/img_convert/e6bf1e9043a1604212944919e8ff805c.png)
有了它就可以不用命令看出目前运行的上下文和命名空间。这个插件也是高度可配置的,可以同时看上下文和命名空间,或者只看一个,或者完全关闭。
popeyepopeye是自动扫描repo中资源并将问题高亮出来的工具,这是一个很新但很有用的功能。如果需要清理集群内问题,最好安装这个工具。
stern如果有需求用kubectl一次看多个Pod的日志,可以用stern这个工具将日志从多个Pod中拉出来,非常方便实用。相关链接:
https://github.com/hjacobs/kube-ops-view
https://medium.com/htc-research-engineering-blog/monitoring-kubernetes-clusters-with-grafana-e2a413febefd
https://ohmyz.sh/
原文链接:https://www.freecodecamp.org/news/how-to-set-up-a-serious-kubernetes-terminal-dd07cab51cd4/Kubernetes实战培训
![0b910a07fc14f0d91e43aa0165b28ada.png](https://img-blog.csdnimg.cn/img_convert/0b910a07fc14f0d91e43aa0165b28ada.png)
Kubernetes实战培训将于2019年6月28日在深圳开课,3天时间带你系统掌握Kubernetes,学习效果不好可以继续学习。本次培训包括:云原生介绍、微服务;Docker基础、Docker工作原理、镜像、网络、存储、数据卷、安全;Kubernetes架构、核心组件、常用对象、网络、存储、认证、服务发现、调度和服务质量保证、日志、监控、告警、Helm、实践案例等,点击下方图片或者点击阅读原文了解详情。