当前位置: 首页 > Linux

通过kubectlkubectllogs[-f][-p](POD-TYPE-NAME)[-cCONTAINER]查看k8s上pod日志的几种方法

时间:2023-04-06 20:07:54 Linux

convenientparameterShorthanddefaultvaluedescriptioncontainerc打印指定容器的日志all-containersfalse获取pod中所有容器的日志。选择器l按标签过滤pod,支持'='、'=='和'!='。例如-lkey1=value1,key2=value2。匹配对象必须满足所有指定的标签约束。max-log-requests5指定使用选择器时要遵守的最大并发日志数。默认值为5。因为0s仅返回比相对持续时间(例如5s、2m或3h)更新的日志。默认为所有日志。since-time和since只能选择since-time中的一个,只返回特定日期后的日志(RFC3339格式)。默认为所有日志。since-time和since只能选择一个tail-1要显示的最近日志文件的行。limit-bytes0要返回的最大日志字节数。默认是无限的。按照ffalse是否继续传输日志。timestampsfalse在每行日志输出中包含时间戳prefixfalse在每行日志前添加日志源(pod名称和容器名称)例如:注意:指定namespace时,不能使用-A和--all-namespaces。通过rancher如果你使用的k8s是rancher托管的,你可以使用rancher查看。注:目前常用的rancher2.5和2.6版本存在一些差异。2.5默认可以查看所有日志,2.6需要设置几个参数。rancher2.5rancher2.6有时候,我们在rancher2.6查看某个pod的指定容器的日志时,发现日志框是一片空白,看不到任何日志信息,但是通过kubectllogs或者dockerlogs可以看到很多日志信息。这很有可能是rancher页面右下角的日志过滤范围没有设置好。rancher2.6默认只显示最近30分钟的日志。所以如果不手动调整的话,很容易错过自己想要的日志。设置方法如下图所示:如下图,可以看到所有的日志: