Как правило, вы не хотите создавать голые стручки Kubernetes.Шаблон, который вы описываете для запуска некоторой задачи средней длины в модуле, а затем с ее завершением, соответствует Job .(Среди других свойств, задание будет перепланировать модуль, если узел, на котором он находится, дает сбой.)
Тем не менее, просто переключение этого на задание напрямую не решает ваш вопрос. Примечания к документации :
Когда задание завершается, больше не создается модулей, но они также не удаляются.Хранение их позволяет вам по-прежнему просматривать журналы завершенных модулей, чтобы проверить наличие ошибок, предупреждений или других диагностических результатов.Объект задания также остается после его завершения, чтобы вы могли просматривать его состояние.Пользователь может удалить старые задания, отметив их состояние.
Таким образом, независимо от того, какая задача создает модуль (или задание), необходимо следить за его завершением, а затем удалять модуль (или задание).,(Подумайте об использовании watch API или, что то же самое, опции kubectl get -w
, чтобы увидеть, когда созданные объекты изменяют состояние.) Нет прямого способа указать это в файле YAML, так как есть конкретное намерение, которое вы можете получитьполезная информация из готового модуля.
Если это действительно ночное задание, которое вы хотите запустить в полночь или что-то подобное, у вас есть еще один вариант. CronJob будет запускать задание по некоторому расписанию, которое, в свою очередь, запускает один модуль.Важная важная деталь здесь заключается в том, что CronJobs имеют явный контроль над тем, сколько выполненных заданий они хранят .Поэтому, если CronJob соответствует вашему шаблону, вы можете установить successfulJobsHistoryLimit: 0
в спецификации CronJob, и созданные задания и соответствующие им модули будут немедленно удалены.