Docker清理Kubernetes吊舱日志的速度太快

Docker清理Kubernetes吊舱日志的速度太快,docker,kubernetes,Docker,Kubernetes,我正在运行许多程序,以便在我的家庭服务器上自动执行任务。当作业运行且其Pod完成时,我可以使用kubectl logs查看日志,但是在一定时间后(少于5分钟但超过30秒),Pod仍然存在于Kubernetes中,但我得到: unable to retrieve container logs for docker://<containerID> 无法检索docker的容器日志:// 我自己没有启用任何日志旋转,所以我假设Docker在容器完成后清理日志。如何将Docker配置为保留

我正在运行许多程序,以便在我的家庭服务器上自动执行任务。当作业运行且其Pod完成时,我可以使用
kubectl logs
查看日志,但是在一定时间后(少于5分钟但超过30秒),Pod仍然存在于Kubernetes中,但我得到:

unable to retrieve container logs for docker://<containerID>
无法检索docker的容器日志://
我自己没有启用任何日志旋转,所以我假设Docker在容器完成后清理日志。如何将Docker配置为保留这些容器日志,以便在作业完成后较长时间(例如1天)后可以查看作业日志

  • 群集供应器:kubeadm 1.17.0
  • Kubernetes版本:1.17.0
  • Docker版本:18.06.3-ce
  • uname-r
    :4.19.86-coreos

您可以尝试在Kubelet中设置
最小容器ttl持续时间
标志。这是完成容器在垃圾收集之前的最短期限

在作业规范中,还可以指定TTL

apiVersion: batch/v1
kind: Job
metadata:
  name: pi-with-ttl
spec:
  ttlSecondsAfterFinished: 100

带有ttl的作业pi将有资格在完成后100秒自动删除。

使用docker进行简单的CronJob

docker系统prune-f-a--filter“until=168h”
docker卷修剪-f

不幸的是,
最小容器ttl持续时间
已被弃用,
ttlSecondsAfterFinished
为alpha(除非它消失,否则不想使用它,也希望设置为集群范围,而不是选择加入)-对于
最小容器ttl持续时间
的建议替换方法是使用
强制逐出
,但这将使磁盘使用率默认达到85%,我希望尽可能多地清理,但将死吊舱单独放置一天(如您所述,使用
最小容器ttl持续时间
是可能的),但我现在不知道该怎么做,你能更详细地解释一下它与你最初的问题有什么关系吗?它解决了你的问题吗?