Stern的功能类似,但是比Kubetail要强大点,它是使用 Go 语言开发的一款开箱即用的简单工具,它可以将多个 Pod 中的日志信息聚合到一起进行展示,并支持彩色输出和条件过滤,目前github有 2.6k star https://github.com/stern/stern/releases/tag/v1.30.0
tar -xzvf stern_1.30.0_linux_amd64.tar.gz mv stern /usr/local/bin/ stern --version stern lano-sharelist30007
# 实时查看当前 Namespace 中所有 Pod 中所有容器的日志 stern . # 查看命名空间所有容器日志(多个容器日志汇总到一个控制台输出) stern . -n 命名空间 # 实时查看指定时间范围内容器的日志,下面的例子表示是 15 分钟内 stern auth -t --since 15m # 实时查看指定命名空间中容器的日志 stern kubernetes-dashboard --namespace 命名空间 # 实时查看所有命名空间中符合指定标签容器的日志 stern --all-namespaces -l run=nginx 基本命令 查看 Pod 日志 stern <pod-name> --namespace <namespace> 例子: stern lano-sharelist30007 --namespace lano 查看所有符合模式的 Pod 日志 stern <pattern> --namespace <namespace> 例子: stern lano-sharelist* --namespace lano 指定命名空间。 stern <pattern> --namespace <namespace> stern <pattern> -n <namespace> --container 或 -c 指定容器名称。 stern <pattern> --namespace <namespace> --container <container-name> stern <pattern> -n <namespace> -c <container-name> --tail 显示日志的最后 N 行。 stern <pattern> --namespace <namespace> --tail <number-of-lines> --since 显示指定时间内的日志,格式为时间间隔,如 1h 表示过去1小时。 stern <pattern> --namespace <namespace> --since <duration> --timestamps 显示日志时间戳。 stern <pattern> --namespace <namespace> --timestamps --json 输出 JSON 格式的日志。 stern <pattern> --namespace <namespace> --json --follow 或 -f 实时跟踪日志(默认开启)。 stern <pattern> --namespace <namespace> --follow stern <pattern> -n <namespace> -f --exclude 排除某些 Pod 的日志。 stern <pattern> --namespace <namespace> --exclude <pattern> 例子 查看特定命名空间中所有以 app 开头的 Pod 的日志: stern app* --namespace my-namespace 查看某个特定 Pod 的日志,并显示时间戳: stern my-pod --namespace my-namespace --timestamps 实时跟踪某个 Pod 的日志: stern my-pod --namespace my-namespace --follow