1) В соответствии с документацией K8S здесь .
Готовые задания обычно больше не нужны в системе.Хранение их в системе будет оказывать давление на сервер API.Если задания управляются непосредственно контроллером более высокого уровня, таким как CronJobs, задания могут быть очищены с помощью CronJobs на основе указанной политики очистки на основе емкости.
Здесь подробные сведения о свойстве failedJobsHistoryLimit в CronJobSpec.
Это еще один способ сохранения сведений о невыполненном задании в течение определенного периода времени.Свойство failedJobsHistoryLimit
можно установить на основе приблизительного числа выполненных заданий в день и количества дней, в течение которых журналы должны храниться.Согласитесь, что Джобс все еще будет там и окажет давление на сервер API.
Это интересно.Как только задание завершается с ошибкой, как в случае неправильной опечатки для изображения, модуль удаляется, и ресурсы больше не блокируются и не используются.Не уверен, чего именно достигнет kubectl job stop
в этом случае.Но когда работа с правильным изображением запускается с успехом, я все еще могу увидеть модуль в kubectl get pods
.
2) Другой подход без использования CronJob - указать ttlSecondsAfterFinished
, как указано здесь .
Другой способ очистки готовых заданий (либо Выполнитьили Failed) автоматически использует механизм TTL, предоставленный контроллером TTL для готовых ресурсов, указав поле .spec.ttlSecondsAfterFinished в Задании.