Концепция — варианты масштабирования Kubernetes
Иногда масштабирование количества модулей pod для обработки повышенного спроса недостаточно. Чтобы учитывать постоянно меняющиеся требования приложения, например регулярное изменение нагрузки в течение дня или недели, часто требуется механизм автомасштабирования кластера.
Параметры масштабирования Kubernetes
Кластеры Kubernetes могут масштабироваться с помощью одного из следующих компонентов:
- Автомасштабирование кластера, которое следит за модулями pod, которые не могут быть запланированы на узлах из-за ограничений ресурсов. Кластер автоматически увеличивает количество узлов для удовлетворения спроса.
- Горизонтальное автомасштабирование pod (HPA), которое использует сервер метрик в кластере Kubernetes для мониторинга спроса на ресурсы модулей pod. Если приложению нужно больше ресурсов, количество pod автоматически увеличивается в соответствии с требованиями.
Автомасштабирование HPA и кластера также может уменьшить количество модулей pod и узлов по мере необходимости. Автомасштабирование кластера уменьшает количество узлов при наличии периода времени с неиспользуемой емкостью. Все модули pod на узле, который требуется удалить автомасштабирование кластера, безопасно запланированы в другом месте кластера.
Автомасштабирование кластера может оказаться не в состоянии уменьшить масштаб в ситуациях, когда модули pod не могут перемещаться, например:
- Если pod создан напрямую на узле, а не через объект контроллера, например в наборе развертывания или реплик.
- если бюджет неработоспособности pod имеет слишком строгие условия и не допускает снижение числа pod ниже определенного порогового значения;
- если pod использует селекторы узла или свойства удаления сходства, которые невозможно выполнить, так как они запланированы на другом узле.
Использование KEDA с HPA
KEDA выступает в качестве пользовательского API метрик, используя масштабировщики для предоставления метрик HPA, упрощая процесс разработки сервера метрик.
Масштабировщики помогают предоставлять метрики из различных источников в HPA. KEDA поддерживает широкий спектр масштабируемых средств, в том числе:
- Apache Kafka
- AWS CloudWatch
- AWS Kinesis Stream
- AWS SQS Queue
- Хранилище BLOB-объектов Azure
- Центры событий Azure
- Azure Log Analytics
- Azure Monitor
- Служебная шина Azure
- Очередь службы хранилища Azure
- Google Cloud Platform Pub/Sub
- IBM MQ
- InfluxDB
- Потоковая передача NAT
- OpenStack Swift
- PostgreSQL
- Prometheus
- Очередь RabbitMQ
- Списки Redis
Полный список см. в разделе "Доступные масштабировщики для KEDA".