Я запускаю задание, как определено здесь , т. Е. "Параллельная обработка с использованием рабочей очереди"
на ГКЕ
Каждый модуль запускает один контейнер, и этот контейнер имеет сценарий R, на завершение которого требуется около 5 минут, а затем Pod успешно завершает работу.
Когда я запускаю задание для небольшого количества завершений, таких как
completions: 606
parallelism: 450
backoffLimit: 1
Все работает нормально, кластер масштабируется должным образом и работа завершается.
Но когда я запускаю работу с такими характеристиками, как
completions: 37572
parallelism: 1610
backoffLimit: 1
Счетчик успешно завершен на некоторое время, но после этого он остается
от 1000 до 1500 и никогда не доходят до завершений
Несмотря на то, что модули успешно завершаются, я вижу их на панели управления облаком Google kubernetes, и выходные файлы также создаются успешно.
Очередь также очень точно показывает прогресс
И это случалось со мной каждый раз, когда я выполнял работу с большим количеством параллелизма.
Я пробовал разные настройки пула автоматического масштабирования узла в моем кластере для машинного типа с 64-процессорами, 32-процессорами, 16-процессорами.
В настоящее время я обращаюсь с
=> Когда в очереди есть число потребителей == параллелизм ИЛИ files_in_output == завершения
=> Я удаляю задание и удаляю пул узлов автомасштабирования.
Пожалуйста, найдите детали кластера
Состояние кластера всегда зеленое во время цикла.
ВОПРОС
- Почему число выполненных работ никогда не увеличивается после определенного момента (т.е. в моем случае ниже моего числа параллелизма)? Несмотря на то, что капсулы заканчиваются успешно.
- И что хуже всего, число выполненных заданий тоже уменьшается? Это я даже не могу понять. Какова будет причина того, что kubernetes ведет себя так?
- Нужно ли мне добавить несколько дополнительных полей в мой шаблон спецификации, чтобы
он правильно отслеживает выполнение заданий?
Обновление:
- Мне достаточно квоты процессора
- Каждый контейнер (Pod) ограничен использованием 1 ЦП и 1 ГБ ОЗУ.
- Я также обновил кластер и пулы узлов до версии 1.10.6-gke.2. Не везет.
GKE ISSUE REPORTED => https://issuetracker.google.com/issues/114650730
job.yml
apiVersion: batch/v1
kind: Job
metadata:
# Unique key of the Job instance
name: my-job
spec:
completions: 37572
parallelism: 1610
backoffLimit: 1
template:
metadata:
name: my-job
labels:
jobgroup: my-jobs
spec:
volumes:
- name: jobs-pv-storage
persistentVolumeClaim:
claimName: fileserver-claim
readOnly: false
containers:
- name: rscript
image: gcr.io/project/image:v1
resources:
limits:
cpu: "1"
memory: 1200Mi
requests:
cpu: "1"
memory: 1000Mi
env:
- name: BROKER_URL
value: amqp://user:pwd@rabbitmq-service:5672
- name: QUEUE
value: job-queue
volumeMounts:
- mountPath: /opt/work/output
name: jobs-pv-storage
# Do not restart containers after they exit
restartPolicy: Never