在Kubernetes环境中,Loki无法成功保存日志的情况

环境

    • kubernetes 1.21

 

    • loki 2.4

 

    agentはpromtail

情况

如果任务或计划任务处理很快完成,可能无法保存日志。

已经调查过的事情

    • 処理時間が大体1秒以下くらいで保存できないことが多くなる

 

    • promtailがpodをターゲットに追加できていない

promtailのkubernetes target discoveryはprometheusのものを使っている
kubernetes apiをwatchしていて、ポーリングではない

podの作成から補足できてないのか、そこはできてるけどログのターゲットに追加できないのか、は不明

kubectl get po -wで見る場合は、ログ保存できないようなpodでも作成は補足できている

我有一点不太明白……

应对

因为我没有正确理解原因,所以我只能在我能看见的范围内适当地保存。

就工作而言

spec.ttlSecondsAfterFinished を使ってpodの寿命を伸ばす

10秒くらいにしとけば間違いないでしょう

如果是cronJob的情况

    • 現状の設定のspec.successfulJobsHistoryLimitが1以上の場合

特に対応しなくてもこの現象は起きてないはず

現状の設定のspec.successfulJobsHistoryLimitが0の場合

spec.successfulJobsHistoryLimitを1にする

spec.jobTemplate.spec.ttlSecondsAfterFinishedを設定する

これも10秒くらいで

在`successfulJobsHistoryLimit`设置中,所剩下的Pod将不会持续存在,而是大约在10秒钟后消失。

其他

preStop命令不能使用。

preStop这个事件是由apiserver发送的删除pod命令触发的,所以在自身退出的作业中不会触发。

侧边车战术

我成功地创建了一个侧边容器并睡眠了10秒,虽然不太理解,但好像可以保存…

首先

也许没有必要保留只持续不到1秒的任务日志,
但如果未保存正常运行的日志发生问题,可能会引起误导。

广告
将在 10 秒后关闭
bannerAds