На моем главном узле я запускаю Kubernetes v1.16.3, пользователи которого время от времени будут отправлять некоторые задания на наши серверы, что сейчас работает. Однако в моем случае у меня много пользователей, и у них должны быть не только приоритеты в работе, но и минимальный срок службы каждого задания / пакета.
Минимум срока жизни должен гарантировать, что задание будет выполняться не менее, например, 5 часов. Если наши ресурсы полностью используются и пользователь отправляет задание с более высоким приоритетом, чем текущие выполняемые задания, то кандидатами на выселение должны быть только те выполняемые задания, срок жизни которых превысил минимальный срок службы.
Я не могу найти для этого решения. Я могу найти только решение для максимального срока службы (https://medium.com/@ptagr/give-your-kubernetes-pods-a-lifetime-8c039d622faf), который представляет собой продолжительность жизни, в течение которой задание / под будет удалено после предоставленное время истекло. Но я не этого хочу. Я хотел бы создать задание / модуль, который защищен в течение 5 часов для запуска, и по истечении указанного времени задание / модуль все еще должен выполняться, но когда приходит другое новое задание (которое, например, имеет минимальный срок службы 3 часа), старое работающее задание / модуль следует исключить, а вновь созданное задание / модуль должен занять его место и работать не менее 3 часов, прежде чем стать кандидатом в быть убитым другой работой.
Возможно ли это вообще в Kubernetes? Или есть обходной путь для этого?