KEDA (Kubernetes Event-Driven Autoscaling) автоматизирует масштабирование приложений Kubernetes на основе внешних событий, таких как очереди сообщений, метрики Prometheus и вебхуки. Основные компоненты KEDA — ScaledObject, определяющий цели масштабирования; Trigger, указывающий источник событий; Scaler, анализирующий метрики; TriggerAuthentication, хранящий учетные данные; KEDA Operator, управляющий ScaledObject'ами; Metrics Server, агрегирующий метрики.
При масштабировании по очереди RabbitMQ, создается Deployment приложения, Kubernetes Secret для хранения учетных данных, TriggerAuthentication для безопасного подключения и ScaledObject для отслеживания очереди. Порог масштабирования задаётся через
В случае масштабирования по HTTP-запросам, KEDA интегрируется с Prometheus. ScaledObject использует метрику
Изображение носит иллюстративный характер
При масштабировании по очереди RabbitMQ, создается Deployment приложения, Kubernetes Secret для хранения учетных данных, TriggerAuthentication для безопасного подключения и ScaledObject для отслеживания очереди. Порог масштабирования задаётся через
queueLength
в ScaledObject
. Увеличение числа сообщений в очереди приводит к автоматическому увеличению количества реплик приложения. В случае масштабирования по HTTP-запросам, KEDA интегрируется с Prometheus. ScaledObject использует метрику
http_requests_total
и заданный порог для масштабирования. Запросы к сервису генерируются скриптом, и KEDA увеличивает количество реплик при превышении порога. query
в ScaledObject
позволяет гибко настроить метрику и порог.