Kubernetes Cron Jobs — запуск нескольких модулей для задания cron

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

Спасибо.

Что вы имеете в виду под single process can not handle the work load. Вы хотите сказать, что пакетная обработка огромных данных или большие вычисления, а обработка/вычисления могут быть распараллелены с несколькими пакетными процессами?

Malathi 30.05.2019 08:34
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
4
1
3 464
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете указать parallelism: <num_of_pods> для cronjob.spec.jobTemplate.spec, и он будет запускать несколько модулей () одновременно.

Ниже приведен пример cronjob, который запускает 3 модуля nginx каждую минуту.

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  creationTimestamp: null
  labels:
    run: cron1
  name: cron1
spec:
  concurrencyPolicy: Allow
  jobTemplate:
    metadata:
      creationTimestamp: null
    spec:
      parallelism: 3
      template:
        metadata:
          creationTimestamp: null
          labels:
            run: cron1
        spec:
          containers:
          - image: nginx
            name: cron1
            resources: {}
          restartPolicy: OnFailure
  schedule: '*/1 * * * *'
  concurrencyPolicy: Forbid
status: {}

Но в моем случае есть еще одно условие. Допустим, мы запланировали запуск задания каждые 3 часа. он работал в 8 утра. если какой-либо из контейнеров все еще работает в 11 утра. в основном, если задание еще не завершено, мы не хотим, чтобы оно запускалось снова. Чтобы сделать это возможным, нам нужно сделать concurrencyPolicy: запрещать.

Nidhi Agarwal 30.05.2019 11:19

Да, concurrencyPolicy: Forbid запрещает одновременные запуски, пропуская следующий запуск, если предыдущий запуск еще не завершен

Prafull Ladha 30.05.2019 11:21

Другие вопросы по теме