Loki 不收集短暂 pods 的日志

Loki doesn't collect logs of short-lived pods

我正在 k8s 集群中试验 jenkins。我的环境是minikube。

我在 ubuntu 中设置了一个独立的 jenkins 服务器,然后我使用 k8s plugin 启动从属服务器 pods 以进行作业。有时当我配置错误时,pods 是非常短暂的。那些pods只存在秒,有日志,但是当pods消失时它们就消失了。

我试过了loki grafana to collect logs for analysis. I installed loki in k8s cluster using loki-stack。通过一些调整,loki-grafana 可以工作。我可以在 grafana 中看到大部分 pods 的日志,除了那些由 jenkins 启动的

我的问题是,是否可以收集那些短命的 pods 的日志?有什么我需要配置的吗?还是根本不可能?

https://grafana.com/docs/loki/latest/clients/promtail/configuration/#target_config

# Period to resync directories being watched and files being tailed to discover
# new ones or stop watching removed ones.
sync_period: "10s"

Promtail 将每 10 秒(重新)发现新的日志文件。

如果您可以让您的 Jenkins pods 的寿命超过 10 秒,那么它们的日志将被 Promtail 发现和跟踪。

例如,您可以附加一个 preStop 处理程序,它会休眠 10 秒...

https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/