Docker清理Kubernetes Pod日志的速度过快

时间:2020-01-27 10:46:06

标签: docker kubernetes

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

unable to retrieve container logs for docker://<containerID>

我自己尚未启用任何日志循环,所以我假设一旦容器完成,Docker便会清理日志。如何配置Docker保留这些容器日志,以便在作业完成较长时间(例如1天)后可以看到作业日志。

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

2 个答案:

答案 0 :(得分:1)

您可以尝试在Kubelet中设置minimum-container-ttl-duration标志。这是完成的容器在被垃圾收集之前的最小寿命。

还可以在作业说明中指定TTL

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

Job pi-with-ttl将有资格在完成100秒后自动删除。

答案 1 :(得分:0)

使用docker http://my-cluster-name-m:18080/history/application_1580137635209_0006/1

进行了简单的CronJob
docker system prune -f -a --filter "until=168h"
docker volume prune -f
相关问题