通常情况下,Kubernetes环境中的应用日志需要通过日志系统进行收集,比如Filebeat+ElasticSearch+Kibana的组合。虽然这种组合的功能还是挺强大的,但是在一些比较简单的测试集群,或者不具备浏览器条件的自动化/控制台环境下,自动合并多个Pod中的日志,集中查看,对于处理problems和Debuggingfailures还是很有帮助的。今天给大家介绍两款超级好用的多容器实时日志查看工具Stern和Kubetail。SternKubectl本身的Log命令不支持同时查看多个Pod容器中的日志。斯特恩很好地解决了这个问题。除了同时拖尾多个容器的日志外,还支持以下强大的功能:允许使用正则表达式来选择需要拖尾的PodName。自定义不同Pod的日志输出颜色。自动添加新创建的符合规则的Pod并执行tail....项目地址:https://github.com/wercker/stern安装SternStern使用Go语言开发,安装非常简单,可以out出来使用盒子。您只需要下载相应平台相关的二进制预编译安装包,即可使用。以Linux平台为例:$wgethttps://github.com/wercker/stern/releases/download/1.11.0/stern_linux_amd64$chmod+xstern_linux_amd64$mvstern_linux_amd64/usr/local/bin如果你使用的是macOS,你可以直接Homebrew安装即可。$brewinstallstern使用SternStern支持的功能非常多,用法也很丰富。我们来看一些常用的例子:1.实时查看当前Namespace下所有Pod中所有容器的日志$stern。2.实时查看Pod中指定容器的日志$sternenvvars--containergateway3.实时查看指定命名空间$stern-nstaging--exclude-containeristio-proxy。4、实时查看指定时间范围内容器的日志。以下示例显示$sternauth-t--since15m在15分钟内5。实时查看指定namespace下容器的日志$sternkubernetes-dashboard--namespacekube-system6.实时查看namespace下所有匹配指定label的容器日志$stern--all-namespaces-lrun=nginx更多用法请参考“官方文档”。KubetailKubetail是一个shell脚本,可以将多个Pod的日志合并在一起,支持彩色输出。项目地址:https://github.com/johanhaleby/kubetail安装Kubetail由于Kubetail只是一个shell脚本,下载后可以直接使用。$wgethttps://raw.githubusercontent.com/johanhaleby/kubetail/master/kubetail$chmod+xkubetail$cpkubetail/usr/local/bin如果你使用的是macOS,也可以直接用Homebrew安装。$brewtapjohanhaleby/kubetail&&brewinstallkubetailKubetail还支持各种SHELL管理框架,如:Oh-my-zsh、Antigen等,具体安装方法请参考《官方安装文档》。使用Kubetail也很简单,基本语法如下:$kubetail
