问题描述
我正在 k8s 集群中试验 jenkins。我的环境是 minikube。
我在 ubuntu 中设置了一个独立的 jenkins 服务器,然后我使用 k8s plugin 为作业启动从属 Pod。有时,当我配置错误时,pod 的寿命非常短。那些 pod 只存在几秒钟,有日志,但是当 pod 消失时它们就会消失。
我尝试了 loki grafana 收集日志以进行分析。我使用 loki-stack 在 k8s 集群中安装了 loki。通过一些调整,loki-grafana 工作。除了 jenkins 启动的那些,我可以在 grafana 中看到大多数 pod 的日志。
我的问题是,是否可以收集那些短命 pod 的日志?有什么我需要配置的吗?还是根本不可能?
解决方法
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 的短命 pod 的寿命超过 10 秒,那么 Promtail 更有可能找到他们的日志。
这里有一些关于如何延迟 Pod 关闭的想法:
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination