我在多个pod中运行eks中的服务器。当我的服务器运行时,它会创建一个日志文件。当涉及多个Pod时,如何根据时间轴查看这些日志文件。例如:pod-1 -> log.txtpod-2-> log.txtpod-3-> log.txt主要错误日志将显示在终端,我知道我可以使用kubectl logs -l访问它。我询问一些其他类型的日志,我存储在文件中。
kubectl logs -l
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
component: server
1条答案
按热度按时间50pmv0ei1#
如果你的主进程不写入stdout,最好的做法是使用一个日志sidecar,将日志写入共享卷,并让sidecar跟踪文件。
字符串
现在,你的日志解决方案(如fluentd或fluentbit)可以获取日志并将其导出到你的日志基础设施,如kibana或云提供商特定(如aws上的cloudwatch),这取决于你拥有/使用什么。
如果你想从终端跟踪它们,你可以使用stern跟踪某些Pod的多个容器日志:
第一个月
假设所有Pod都标有
component: server