Kubernetes Docker日志

时间:2018-05-25 23:15:14

标签: kubernetes

我使用以下命令检查Kubernetes中的日志。

  

kubectl logs pod_name -n namespace

它从头开始打印所有日志。

  1. 无论如何都要在给定窗口之间拖尾日志或检查日志?
  2. 是否可以根据大小或日期轮换泊坞窗日志?
  3. 由于

5 个答案:

答案 0 :(得分:1)

1:是的,你可以按日期尾部或过滤。

就像运行 kubectl logs --help

一样简单
Options:
  -c, --container='': Print the logs of this container
  -f, --follow=false: Specify if the logs should be streamed.
      --include-extended-apis=true: If true, include definitions of new APIs via calls to the API server. [default true]
      --interactive=false: If true, prompt the user for input when required.
      --limit-bytes=0: Maximum bytes of logs to return. Defaults to no limit.
      --pod-running-timeout=20s: The length of time (like 5s, 2m, or 3h, higher than zero) to wait until at least one
pod is running
  -p, --previous=false: If true, print the logs for the previous instance of the container in a pod if it exists.
  -l, --selector='': Selector (label query) to filter on.
      --since=0s: Only return logs newer than a relative duration like 5s, 2m, or 3h. Defaults to all logs. Only one of
since-time / since may be used.
      --since-time='': Only return logs after a specific date (RFC3339). Defaults to all logs. Only one of since-time /
since may be used.
      --tail=-1: Lines of recent log file to display. Defaults to -1 with no selector, showing all log lines otherwise
10, if a selector is provided.
      --timestamps=false: Include timestamps on each line in the log output

2:Docker将容器日志存储在路径 / var / lib / docker / containers / {ContainerId} 中的主机中,以便您可以直接复制/截断日志。

这对容器或容器没有任何影响。

答案 1 :(得分:0)

  

无论如何都要在给定窗口之间拖尾日志或检查日志?

要拖动日志,请使用-f选项

kubectl logs pod_name -n namespace -f
  

是否可以根据大小或日期来定位泊坞窗日志?

您可以在x-lines之前或从时间范围开始查询日志。请查看—tail—since选项

  

kubectl logs [-f] [-p] POD [-c CONTAINER]

     

实例    仅使用一个容器从pod nginx返回快照日志

     

kubectl记录nginx

     

从pod web-1

返回以前终止的ruby容器日志的快照      

kubectl logs -p -c ruby​​ web-1

     

开始在pod web-1

中流式传输ruby容器的日志      

kubectl logs -f -c ruby​​ web-1

     

仅显示pod nginx中最近的20行输出

     

kubectl logs --tail = 20 nginx

     

显示过去一小时写的pod nginx中的所有日志

     

kubectl logs --since = 1h nginx

https://kubernetes-v1-4.github.io/docs/user-guide/kubectl/kubectl_logs/

答案 2 :(得分:0)

“ kubectl日志”的“ tail”功能可与此便捷的GUI前端一起使用:https://retrospective.centeractive.com/blog_retrospective_5_0_0.html

前端利用了“ kubectl”的几个功能,例如:

  • 允许以几种方式过滤“ tail”输出(问题1中的“检查给定窗口之间的日志”)
  • 允许通过标签对一组Kuberenetes吊舱进行视觉配置。然后可以在单个视图中“多尾”地将组中的Pod的日志数据。

披露:我帮助制作了这个前端。

答案 3 :(得分:0)

是的,我们可以使用如下所示的since提取日志-

kubectl日志--since = 48h podname> 24Logs.txt

然后,您可以轻松查看过去48小时内特定时间的日志。

答案 4 :(得分:0)

kubectl记录pod_name --since = 2m --timestamps