Есть ли способ автоматически запустить дополнительное (другое) задание только в случае сбоя задания Kubernetes? - PullRequest
0 голосов
/ 06 августа 2020

Контекст:

В настоящее время у меня есть приложение Python Flask, которое при получении запроса автоматически создает задание Kubernetes для запуска процесса. После завершения задания результаты отправляются обратно в указанную конечную точку c (никогда не изменяется). В зависимости от специфики запроса этот процесс может сильно различаться по продолжительности (времени) и требованиям к ресурсам. Причина, по которой я использую для этого Jobs, связана с их способностью перезапускаться в случае сбоя.

Проблема:

Даже при разрешении максимального количества перезапусков будут случаи, когда процесс будет ошибаться. Я хочу реализовать что-то вроде:

  • Если задание завершается успешно, ничего не делайте.
  • Если задание завершается неудачно после достижения максимального числа повторных попыток, запустите foo()

foo() - очень простая функция Python, которая отправляет HTTP-запрос с параметрами запроса, в результате которого задание не было успешно завершено. Это не обязательно должна быть функция Python, но она предпочтительна.

Примечание : я заключаю все в общее исключение ошибки в функции python, которую необходимо выполнить заданию. выполнить, однако в некоторых случаях задание может завершиться ошибкой из-за нехватки памяти.

1 Ответ

0 голосов
/ 06 августа 2020

почему бы не реализовать в своем кластере решение без обслуживания, knative, kubeless или другое решение.

...