每次运行Kubernetes cronjob后,将日志导出到指定路径



我目前有一个Cronjob,它有一个在某个时间段调度并以模式运行的作业。我想将每个pod运行的日志导出到temp/logs/FILENAME路径下的一个文件中其中FILENAME是正在创建的运行的时间戳。我该怎么做呢?希望能提供一个解决方案。如果您需要添加脚本,那么请使用python或shell命令。谢谢你。

根据Kubernetes日志架构:

在集群中,日志应该有单独的存储和生命周期独立于节点、pod或容器。这个概念叫做集群级别的日志记录。

集群级日志架构需要一个单独的后端来存储、分析和查询日志。Kubernetes不提供本机日志数据存储解决方案。相反,有很多日志记录与Kubernetes集成的解决方案

这将我们带到了集群级日志架构:

而Kubernetes并没有提供集群级的本地解决方案日志记录,有几种常见的方法可以考虑。在这里有一些选项:

  • 使用在每个节点上运行的节点级日志代理。

  • 包含一个专用的sidecar容器,用于登录应用程序pod。

  • 将日志从应用程序内直接推送到后端。

Kubernetes不提供它自己的日志聚合。因此,您需要一个本地代理来收集数据并将其发送到中央日志管理。请看下面的一些选项:

  • Fluentd

  • 麋鹿堆栈

您可以找到在/var/log/containers/*.log上PODs生成的所有日志在每个Kubernetes节点上。如果愿意,您可以使用简单的脚本手动处理它们,但是您必须记住,pod可以在任何节点上运行(如果不受限制的话),并且节点可能来来往往。

考虑将日志发送到外部系统,如ElasticSearch或Grafana Loki,并在那里管理它们。

相关内容

  • 没有找到相关文章

最新更新