通过 kubectl
kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER]
我应用的是 3A 服务器近程连贯的 centos 零碎,挺不便的
参数 简写 默认值 阐明
container c 打印指定容器的日志
all-containers false 获取 pod 中所有容器的日志。
selector l 通过标签筛选 pod,反对‘=’、‘==’和‘!=’。
例如 -l key1=value1,key2=value2。
匹配对象必须满足所有指定的标签束缚。
max-log-requests 5 指定选择器应用时要遵循的最大并发日志数。默认为 5。
since 0s 仅返回比绝对持续时间(如 5s、2m 或 3h)更新的日志。
默认为所有日志。since-time 和 since 只能二选一
since-time 仅在特定日期 (RFC3339 格局) 之后返回日志。
默认为所有日志。since-time 和 since 只能二选一
tail -1 要显示的最近日志文件的行。
limit-bytes 0 要返回的最大日志字节数。默认为无限度。
follow f false 是否继续传输日志。
timestamps false 在日志输入的每一行蕴含工夫戳
prefix false 在每个日志行前加上日志源(pod 名称和容器名称)
例如:
留神:指定 namespace 时,不能用 -A 和 –all-namespaces。
通过 rancher
如果您应用的 k8s 被 rancher 托管,则能够应用 rancher 查看。
留神:在以后罕用的 2.5 和 2.6 两个 rancher 版本中,有些许差别,2.5 默认就能查看到全副日志,2.6 则须要设置几个参数。
rancher 2.5
rancher 2.6
有时候,咱们在 rancher2.6 查看某个 pod 的指定容器的日志时,发现日志框是齐全空白的,看不到任何日志信息,而通过 kubectl logs,或者 docker logs 却能看到不少日志信息。这大概率是因为 rancher 页面右下方是日志筛选范畴没有进行失当的设置,默认状况下,rancher2.6 只显示最近 30 分钟的日志。所以如果不手动调整一下,就很容易看不到想要日志。设置形式如下图所示:
如下图所示,即可看到全副日志: