Kubernetes日志查看工具 - kubetail

1 问题

假如集群中有一个deployment,副本数为3,此时需要查看Pod的日志时,kubectl默认的log命令是不支持多容器日志查看的。

2 kubetail介绍

Kubetail 是一个 Bash 脚本,功能类似kubectl -f logs pod-name,但是不同的是,他同时对多个 Pod 工作,并把日志合并到一个流中。

3 安装

MacOS

1
brew tap johanhaleby/kubetail && brew install kubetail 

4 使用

Kubetail 使用也是非常简单的,基本语法如下:

1
kubetail <search term> [-h] [-c] [-n] [-t] [-l] [-d] [-p] [-s] [-b] [-k] [-v] [-r] [-i] -- tail multiple Kubernetes pod logs at the same time

4.1 参数解释

1
2
3
4
5
6
7
-c:指定多容器 Pod 中的容器名称  
-t:指定 Kubeconfig 文件中的 Context
-l:标签过滤器,使用 -l 参数之后,会忽略 Pod 名称
-n:指定命名空间
-s:指定返回一个相对时间之后的日志,例如 5s,2m 或者 3h,缺省是 10s
-b:是否使用 line-buffered,缺省为 false
-k:指定输出内容的具体着色部分,pod:只给 pod 名称上色,line:整行上色(缺省),false:不上色

4.2 使用示例

1
2
3
4
5
6
7
$ kubetail my-pod-v1  
$ kubetail my-pod-v1 -c my-container
$ kubetail my-pod-v1 -t int1-context -c my-container
$ kubetail '(service|consumer|thing)' -e regex
$ kubetail -l service=my-service
$ kubetail --selector service=my-service --since 10m
$ kubetail --tail 1


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!