K8s Pod日志神器
多容器实时日志查看工具 Kubetail
和 Stern
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 |