#kubernetes
Вопрос:
В задании Kubernetes есть спецификация для .spec.activeDeadlineSeconds. Если вы не зададите его явно, каким будет значение по умолчанию? 600 секунд?
вот пример из документа k8s
apiVersion: batch/v1
kind: Job
metadata:
name: pi-with-timeout
spec:
backoffLimit: 5
activeDeadlineSeconds: 100
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
предположим, я удалю строку
activeDeadlineSeconds: 100
Ответ №1:
Он не установлен по умолчанию. Вот заметка из журнала изменений:
ActiveDeadlineSeconds
теперь он проверен в контроллерах рабочей нагрузки, убедитесь, что он нигде не установлен (он не должен быть установлен по умолчанию, и его установка означает, что ваш контроллер в какой-то момент перезапустит модули) (#38741)
Комментарии:
1. Мне все еще интересно, каково поведение, если
activeDeadlineSeconds
оно вообще не задано?2. Kubernetes не знает , какова природа задания(продолжительность выполнения), допустим, моя работа занимает 900 секунд, а гипотетическое значение activedealineseconds по умолчанию равно 600 секундам(при условии), что моя работа будет остановлена контроллером.
3. @P…. Вопрос
ActiveDeadlineSeconds
в Работе, а не вrc/rs
. Это совсем другое дело.4. Да, ответ только для рабочих мест.
Ответ №2:
По умолчанию задание будет выполняться непрерывно. Если вы не установите activeDeadlineSeconds
, задание не будет иметь активного крайнего срока. Это означает activeDeadlineSeconds
, что значение по умолчанию отсутствует.
Кстати, есть несколько способов прекратить работу.(Конечно, когда задание завершается, Модули больше не создаются.)
- Политика отказа от возврата Pod(
.spec,.backofflimit
) Вы можете указать.spec.backoffLimit
количество повторных попыток, прежде чем считать задание неудачным. Ограничение по времени ожидания по умолчанию равно 6. Отказавшие модули, связанные с заданием, создаются контроллером заданий с экспоненциальной задержкой возврата (10, 20, 40 …) , которая ограничена шестью минутами. Счетчик возврата сбрасывается, когда модуль задания удален или успешно выполнен без каких-либо других модулей для сбоя задания примерно в это время. - Установка активного крайнего срока(
.spec.activeDeadlineSeconds
) Значения в секундах Activedeadlines применяются к продолжительности задания, независимо от того, сколько модулей создано. Как только Задание достигнет activeDeadlineSeconds, все его запущенные модули будут завершены, и статус задания станет типа: Не выполнено по причине: Недоступно.
Обратите внимание, что значение .spec.activeDeadlineSeconds задания имеет приоритет над значением .spec.backoffLimit. Таким образом, задание, которое повторяет одну или несколько неудачных модулей, не будет развертывать дополнительные модули, как только оно достигнет ограничения по времени, указанного в activeDeadlineSeconds, даже если ограничение на возврат еще не достигнуто.