Как выглядит shutdown для модуля работы cron в kubernetes, когда он завершается политикой параллелизма «replace»? - PullRequest
1 голос
/ 29 января 2020

Я не смог найти ничего в официальных документах kubernetes об этом. Каков на самом деле низкоуровневый процесс замены длительной работы cron? Я хотел бы понять это, чтобы мое приложение могло обрабатывать его правильно.

  • Это чистый сигнал SIGHUP / SIGTERM, который отправляется в приложение, которое работает?
  • Есть ли период ожидания после отправки этого сигнала, поэтому у приложения есть время для очистки / выключения, прежде чем оно может быть убито? Если так, то что это за тайм-аут в секундах? Или это ждет вечно?

Для справки, вот объяснение политики Replace в документации:

https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/

Политика параллелизма

  • Заменить: если пришло время для запуска нового задания, а предыдущий запуск еще не завершен, задание cron заменяет текущий запуск задания новым выполнением задания

1 Ответ

2 голосов
/ 30 января 2020

В CronJob есть еще один Pod.

Когда Cronjob с политикой параллелизма "Replace" все еще активен, задание будет удалено , что также удаляет Pod.

Когда Pod * удален , контейнеру / контейнерам Linux будет отправлено SIGTERM, а затем SIGKILL по истечении льготного периода, по умолчанию 30 секунд. Свойство terminationGracePeriodSeconds в PodSpe c может быть установлено для переопределения этого значения по умолчанию.

Из-за флага , добавленного к DeleteJob вызов, похоже, что это удаление только удаляет значения из хранилища ключей / значений kube. Это означает, что новое задание / модуль может быть создан, пока текущее задание / модуль еще завершается. Вы можете подтвердить это заданием, которое не соответствует SIGTERM и для которого terminationGracePeriodSeconds установлено в несколько раз превышающее скорость планирования кластеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...