Kubernetes: Как установить минимальное время жизни задания / пода?

На моем главном узле я запускаю Kubernetes v1.16.3, пользователи которого время от времени будут отправлять некоторые задания на наши серверы, что сейчас работает. Однако в моем случае у меня много пользователей, и у них должны быть не только приоритеты в работе, но и минимальный срок службы каждого задания / пакета.

Минимум срока жизни должен гарантировать, что задание будет выполняться не менее, например, 5 часов. Если наши ресурсы полностью используются и пользователь отправляет задание с более высоким приоритетом, чем текущие выполняемые задания, то кандидатами на выселение должны быть только те выполняемые задания, срок жизни которых превысил минимальный срок службы.

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

Возможно ли это вообще в Kubernetes? Или есть обходной путь для этого?


person TheHeroOfTime    schedule 23.10.2020    source источник


Ответы (1)


Планировщик Kubernetes не понимает время напрямую. Вы можете установить PriorityClasses и PodDisruptionBudgets (в данном случае бюджет maxDisruptions 0), которые управляют добровольными выселениями. Возможно, можно было бы написать что-то, что изменяет значение PriorityClass через определенное время, но я не знаю ничего готового для этого, было бы настраиваемым оператором.

person coderanger    schedule 23.10.2020