Docker очистка журналов Kubernetes Pod слишком быстро - PullRequest
1 голос
/ 27 января 2020

Я использую несколько CronJobs для автоматизации задач на моем домашнем сервере. Когда задание запускается и его модули завершаются, я могу просматривать журналы, используя kubectl logs <podName>, однако через определенное время (менее 5 минут, но более 30 секунд) модуль все еще существует в Куберне, но я получаю:

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 ]

1 голос
/ 27 января 2020

Вы можете попробовать установить флаг minimum-container-ttl-duration в Kubelet. Это минимальный срок хранения готового контейнера до его сбора.

Также в задании spe c вы можете указать TTL

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

Задание pi-with-ttl будет иметь право на автоматическое удаление через 100 секунд после его окончания.

0 голосов
/ 27 января 2020

Пошёл для простого CronJob, используя docker чернослив

docker system prune -f -a --filter "until=168h"
docker volume prune -f
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...