查看kubernetes中多个pod保存的日志文件

velaa5lx  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(119)

我在多个pod中运行eks中的服务器。当我的服务器运行时,它会创建一个日志文件。当涉及多个Pod时,如何根据时间轴查看这些日志文件。
例如:
pod-1 -> log.txt
pod-2-> log.txt
pod-3-> log.txt
主要错误日志将显示在终端,我知道我可以使用kubectl logs -l访问它。我询问一些其他类型的日志,我存储在文件中。

50pmv0ei

50pmv0ei1#

如果你的主进程不写入stdout,最好的做法是使用一个日志sidecar,将日志写入共享卷,并让sidecar跟踪文件。

containers:
  - name: main-app
    image: some-image   
    volumeMounts:
    - name: varlog
      mountPath: /var/log # have main-app log to /var/log/log.txt
  - name: log-sidecar
    image: busybox:1.28
    args: [/bin/sh, -c, 'tail -n+1 -F /var/log/log.txt']
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  volumes:
  - name: varlog
    emptyDir: {}

字符串
现在,你的日志解决方案(如fluentd或fluentbit)可以获取日志并将其导出到你的日志基础设施,如kibana或云提供商特定(如aws上的cloudwatch),这取决于你拥有/使用什么。
如果你想从终端跟踪它们,你可以使用stern跟踪某些Pod的多个容器日志:
第一个月
假设所有Pod都标有component: server

相关问题