Когда задание завершается, больше не создается никаких модулей, но они также не удаляются.
По умолчанию задание будет работать непрерывно, пока не произойдет сбой модуля (restartPolicy = Never) или контейнер не выйдет вошибка (restartPolicy = OnFailure), после чего Задание откладывается до .spec.backoffLimit , описанного выше. По достижении .spec.backoffLimit задание будет помечено как сбойное, а все запущенные модули будут прерваны.
Другой способ завершить задание - установить активный крайний срок. Сделайте это, установив в поле .spec.activeDeadlineSeconds задания заданное количество секунд. activeDeadlineSeconds применяется к продолжительности работы независимо от того, сколько модулей создано. Как только задание достигает activeDeadlineSeconds, все его работающие блоки прекращают работу, и статус задания становится типом: Сбой по причине: DeadlineExceeded.
Обратите внимание, что .spec.activeDeadlineSeconds задания 1011 * имеет приоритет над заданием. его .spec.backoffLimit . Таким образом, задание, которое повторяет один или несколько отказавших модулей, не будет развертывать дополнительные модули, как только достигнет предела времени, указанного в activeDeadlineSeconds , даже если backoffLimit еще не достигнут.
Здесьдополнительная информация: заданий .
Вы также можете настроить concurrencyPolicy из cronjob на Заменить и заменить текущийвыполнение задания с новым заданием.
Вот пример:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/2 * * * *"
concurrencyPolicy: Replace
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster && sleep 420
restartPolicy: Never
Настройка Замена значением для concurrencyPolicy Флаг означает, что пришло времядля нового запуска задания, а предыдущий запуск еще не завершен, задание cron заменяет запущенный в данный момент запуск задания новым.
Независимо от этого решения ваша проблема заключается в неправильных изображениях, поэтому автоматическое удалениестручки или рабочие места не решают проблему. Потому что, если вы ничего не измените в определении заданий и изображений, ваши модули будут по-прежнему не работать после повторного создания задания.
Вот пример устранения неполадок для Error: ImagePullBackOff Normal BackOff: ImagePullBackOff .