#keda #keda-scaledjob
Вопрос:
У меня есть масштабируемое задание Keda, настроенное на создание 1 задания на сообщение с состоянием «готово» в RabbitMQ.
Он имеет максимальное количество реплик, равное 70.
Наблюдаемый:
- Когда в очереди много сообщений, скажем, 300, Keda правильно создает новые задания, чтобы достичь максимального предела количества реплик => Таким образом, в очереди выполняется 70 заданий, каждое из которых потребляет 1 сообщение.
- Когда в очереди несколько сообщений, скажем, 1 Готово и 1 распаковано, Keda отказывается создавать новое задание, даже если в кластере достаточно ресурсов. Это похоже на ожидание завершения текущего выполняемого задания, чтобы создать новое задание.
Вот моя конфигурация Keda :
---
# Reference - https://keda.sh/docs/2.0/concepts/scaling-jobs/
apiVersion: keda.sh/v1alpha1
kind: ScaledJob
metadata:
name: scaledjob-puppeteer
labels:
environment: development
app: puppeteer-display
spec:
jobTargetRef:
parallelism: 1 # [max number of desired pods](https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#controlling-parallelism)
completions: 1 # [desired number of successfully finished pods](https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#controlling-parallelism)
activeDeadlineSeconds: 7200 # (2 hours) Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer
backoffLimit: 2 # Specifies the number of retries before marking this job failed. Defaults to 6
template:
spec:
volumes:
...
containers:
...
pollingInterval: 10
successfulJobsHistoryLimit: 0
failedJobsHistoryLimit: 0
maxReplicaCount: 75
triggers:
- type: rabbitmq
metadata:
protocol: amqp
queueName: tasks
mode: QueueLength
value: "1"
authenticationRef:
name: keda-trigger-auth-rabbitmq-conn
---
Как заставить Keda создавать задание всякий раз, когда в очереди >= 1 сообщение ?
Правка: Похоже, что он ждет не менее 1 часа, прежде чем создать новое задание.