Очередь квот Kubernetes - PullRequest
       22

Очередь квот Kubernetes

0 голосов
/ 28 апреля 2019

Мне нужно поставить в очередь ресурсы Kubernetes, основываясь на квотах Kubernetes.

Пример ожидаемого сценария:

  • пользователь создает ресурс Kubernetes (скажем, простой модуль X)
  • достигнуто количество ресурсов объекта quora, модуль X переходит в состояние Pending
  • ресурсы освобождены (другой модуль Y удален), наш модуль X начинает создавать

Длятеперь этот сценарий не будет работать из-за поведения квоты, которое возвращает 403 FORBIDDEN, когда в квоте нет свободных ресурсов:

Если создание или обновление ресурса нарушает ограничение квоты, запроспотерпит неудачу с кодом состояния HTTP 403 FORBIDDEN с сообщением, объясняющим ограничение, которое было бы нарушено.

Вопрос: Есть ли способ достичь этого с помощью встроенных механизмов Kubernetes?

Я пытался выполнить pods над заданиями Kubernetes, но каждое задание запускается независимо, и я не могу контролировать порядок выполнения.Я хотел бы выполнить их методом First In First Out.

Ответы [ 2 ]

2 голосов
/ 28 апреля 2019

IMO, если k8s не принял ресурс, почему он управляет своим жизненным циклом или порядком выполнения.

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

Вы также можете посмотреть шаблон рабочей очереди, если он соответствует вашим требованиям, как объяснено https://kubernetes.io/docs/tasks/job/fine-parallel-processing-work-queue/

В случае, если вы хотите, чтобы одна работа выполнялась одновременно.

0 голосов
/ 28 апреля 2019

Я думаю, что выполнение заданий в заданном порядке должно управляться внешней логикой. Для этого мы используем трубопровод Jenkins.

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