Для бессостоянных приложений с периодическими колебаниями бизнес-активности CronHPA (Cron Horizontal Pod Autoscaler) поддерживает регулирование количества подов на основе заданных вами временных политик, что позволяет оптимизировать использование ресурсов в соответствии с предсказуемыми бизнес-паттернами.
Вы можете создать cron horizontal pod autoscaler, чтобы указать количество подов, которые должны работать в определённое время согласно расписанию, что позволяет подготовиться к предсказуемым пиковым нагрузкам или снизить использование ресурсов в часы низкой активности.
После создания cron horizontal pod autoscaler платформа начинает отслеживать расписание и автоматически регулирует количество подов в указанные моменты времени. Такое масштабирование по времени происходит независимо от метрик использования ресурсов, что делает его идеальным для приложений с известными паттернами использования.
CronHPA работает путём определения одного или нескольких правил расписания, каждое из которых указывает время (в формате crontab) и целевое количество реплик. Когда наступает запланированное время, CronHPA изменяет количество подов в соответствии с указанной целью, независимо от текущего использования ресурсов.
Cron horizontal pod autoscaler (CronHPA) расширяет концепцию автоскейлинга подов, добавляя управление на основе времени. CronHPA позволяет определить конкретные моменты времени, когда количество подов должно изменяться, что помогает подготовиться к предсказуемым пиковым нагрузкам или снизить использование ресурсов в часы низкой активности.
CronHPA постоянно сравнивает текущее время с заданными расписаниями. Когда наступает запланированное время, контроллер регулирует количество подов, чтобы оно соответствовало целевому количеству реплик, указанному для этого расписания. Если несколько расписаний срабатывают одновременно, платформа применит правило с более высоким приоритетом (то есть определённое раньше в конфигурации).
Убедитесь, что компоненты мониторинга развернуты в текущем кластере и работают корректно. Вы можете проверить статус развертывания и состояние компонентов мониторинга, нажав в правом верхнем углу платформы > Platform Health Status..
Вы можете создать cron horizontal pod autoscaler с помощью командной строки, определив YAML-файл и используя команду kubectl create
. В следующем примере показано плановое масштабирование для объекта Deployment:
Создайте YAML-файл с именем cronhpa.yaml
со следующим содержимым:
Этот пример настраивает деплоймент следующим образом:
Примените YAML-файл для создания CronHPA:
Войдите в Container Platform.
В левой навигационной панели выберите Workloads > Deployments.
Нажмите на Имя деплоймента.
Прокрутите вниз до раздела Elastic Scaling и нажмите справа Update.
Выберите Scheduled Scaling и настройте правила масштабирования. Если тип выбран как Custom, необходимо указать выражение Crontab для условия срабатывания в формате минута час день месяц неделя
. Для подробного ознакомления обратитесь к разделу Writing Crontab Expressions.
Нажмите Update.
Важные замечания:
минута час день месяц неделя
) и следует тем же правилам, что и Kubernetes CronJobs.