Skip to content

K8s Pod日志神器

多容器实时日志查看工具 KubetailStern

1. Kubetail 工具

Bash script to tail Kubernetes logs from multiple pods at the same time

1.1.安装

shell
# https://github.com/johanhaleby/kubetail/releases
wget https://raw.githubusercontent.com/johanhaleby/kubetail/master/kubetail

chmod +x kubetail
cp kubetail /usr/local/bin  && chmod +x /usr/local/bin/kubetail
# https://github.com/johanhaleby/kubetail/releases
wget https://raw.githubusercontent.com/johanhaleby/kubetail/master/kubetail

chmod +x kubetail
cp kubetail /usr/local/bin  && chmod +x /usr/local/bin/kubetail

1.2使用

shell
# 同时跟踪两个"app2"的Pod的日志
$ kubetail app2
$ kubetail app1,app2

# 指定"app2"的Pod里面的容器名称
$ kubetail app2 -c container1
$ kubetail app2 -c container1 -c container2
$ kubetail app2 -c container1 -n namespace1

# 使用正则表达式
$ kubetail "^app1|.*my-demo.*" --regex
# 同时跟踪两个"app2"的Pod的日志
$ kubetail app2
$ kubetail app1,app2

# 指定"app2"的Pod里面的容器名称
$ kubetail app2 -c container1
$ kubetail app2 -c container1 -c container2
$ kubetail app2 -c container1 -n namespace1

# 使用正则表达式
$ kubetail "^app1|.*my-demo.*" --regex
  • 使用颜色
shell
# pod:   只有Pod名称着色且其他输出均使用终端默认颜色
# line:  整行是彩色的(默认)
# false: 所有输出都不着色
$ kubetail app2 -k pod
$ kubetail app2 -k line
$ kubetail app2 -k false
# pod:   只有Pod名称着色且其他输出均使用终端默认颜色
# line:  整行是彩色的(默认)
# false: 所有输出都不着色
$ kubetail app2 -k pod
$ kubetail app2 -k line
$ kubetail app2 -k false
  • 常用参数说明
#查看参数
kubetail -h
#查看参数
kubetail -h
参数对应含义解析
-n指定命名空间的名称
-c指定多容器 Pod 中的容器具体名称
-k将输出的日志内容进行着色显示
-b是否使用 line-buffered 特性,默认为 false 状态
-l标签过滤器,用于忽略 Pod 名称
-t指定 Kubeconfig 文件中的 Context 内容
-s指定返回一个相对时间之后的日志;例如 5s/2m/3h,默认是 10s