Автоматическое масштабирование HDInsight в кластерах AKS
Важный
Azure HDInsight на AKS выведен из эксплуатации 31 января 2025 г. Узнайте больше об этом объявлении.
Необходимо перенести рабочие нагрузки в Microsoft Fabric или эквивалентный продукт Azure, чтобы избежать резкого завершения рабочих нагрузок.
Важный
Эта функция сейчас доступна в предварительной версии. Дополнительные условия использования для предварительных версий Microsoft Azure включают дополнительные юридические термины, применимые к функциям Azure, которые находятся в бета-версии, в предварительной версии или в противном случае еще не выпущены в общую доступность. Сведения об этой конкретной предварительной версии см. в Azure HDInsight в предварительной версии AKS. Для вопросов или предложений функций отправьте запрос на AskHDInsight с подробными сведениями и подписывайтесь на обновления в Azure HDInsight Community.
Размер любого кластера для обеспечения производительности заданий и управления затратами всегда сложно определить! Одним из выгодных преимуществ строительства озера данных в Облаке является его эластичность, что означает использование функции автомасштабирования для максимально эффективного использования имеющихся ресурсов. Автомасштабирование с помощью Kubernetes является одним из ключей для создания оптимизированной для затрат экосистемы. С различными моделями использования в любом предприятии могут быть вариации нагрузок кластера с течением времени, которые могут привести к недостаточной загрузке кластеров (плохой производительности) или чрезмерной загрузке (ненужные затраты из-за неиспользуемых ресурсов).
Функция автомасштабирования, предлагаемая в HDInsight в AKS, может автоматически увеличивать или уменьшать количество рабочих узлов в кластере. Автомасштабирование использует метрики кластера и политику масштабирования, используемую клиентами.
Эта функция хорошо подходит для критически важных рабочих нагрузок.
- Переменные или непредсказуемые шаблоны трафика, которые требуют соглашений об уровне обслуживания для обеспечения высокой производительности и масштабируемости.
- Предопределенное расписание для обеспечения доступности необходимых рабочих узлов для успешного выполнения заданий в кластере.
Автоматическое масштабирование с помощью HDInsight в кластерах AKS делает кластеры экономичными и эластичными в Azure.
С помощью автоматического масштабирования клиенты могут уменьшать масштаб кластеров, не затрагивая рабочие нагрузки. Она включена с расширенными возможностями, такими как плавный вывод из эксплуатации и период охлаждения. Эти возможности позволяют пользователям принимать обоснованные решения о добавлении и удалении узлов на основе текущей нагрузки кластера.
Принцип работы
Эта функция работает путем масштабирования числа узлов в предустановленных ограничениях на основе метрик кластера или определенного расписания операций масштабирования и уменьшения масштаба. Существует два типа условий для активации событий автомасштабирования: триггеры на основе порога для различных метрик производительности кластера (называется масштабированием на основе нагрузки) и триггеров на основе времени (называется масштабированием на основе расписания).
Масштабирование на основе нагрузки изменяет количество узлов в кластере в пределах заданного диапазона, чтобы обеспечить оптимальное использование ЦП и свести к минимуму затраты на выполнение.
Масштабирование на основе расписания изменяет количество узлов в кластере на основе расписания операций масштабирования и уменьшения масштаба.
Заметка
Автоматическое масштабирование не поддерживает изменение типа SKU существующего кластера.
Совместимость кластера
В следующей таблице описываются типы кластеров, совместимые с функцией автомасштабирования, и доступные или запланированные.
Загруженность | Основанный на нагрузке | На основе расписания |
---|---|---|
Flink | Запланированный | Да |
Трино | Да** | Да** |
Искра | Да** | Да** |
**Грациозная отмена эксплуатации настраивается.
Методы масштабирования
масштабирование на основе расписания:
масштабирование в зависимости от нагрузки
Когда шаблоны нагрузки существенно и непредсказуемо изменяются в течение дня, например, обработка данных со случайными колебаниями шаблонов нагрузки на основе различных факторов.
С помощью нового параметра конфигурации правила масштабирования теперь можно настраивать правила масштабирования.
Совет
- Правила масштабирования имеют приоритет при активации одного или нескольких правил. Даже если только одно из правил для увеличения масштаба указывает на нехватку ресурсов кластера, кластер попытается увеличить масштаб. Для уменьшения масштаба не должно быть активировано правило увеличения масштаба.
Условия масштабирования на основе нагрузки
При обнаружении следующих условий автоматическое масштабирование выдает запрос на масштабирование
Масштабирование | Уменьшение масштаба |
---|---|
Выделенные ядра превышают 80% при интервале опроса 5 минут (период проверки 1 минута) | Выделенные ядра меньше или равны 20% для интервала опроса 5 минут (1-минутный период проверки) |
Для горизонтального масштабирования автоматически возникает запрос на масштабирование, чтобы добавить требуемое количество узлов. Масштабирование основано на количестве новых рабочих узлов, необходимых для удовлетворения текущих требований к ЦП и памяти. Это значение ограничено максимальным числом рабочих узлов.
Для уменьшения масштаба автоматически выполняется запрос на удаление некоторых узлов. Рекомендации по уменьшению масштабов включают количество pod на один узел, текущие требования к ЦПУ и памяти, а также рабочие узлы, которые являются кандидатами на удаление на основе текущего выполнения задания. Операция уменьшения масштаба сначала удаляет узлы, а затем удаляет их из кластера.
Важный
Модуль правил автомасштабирования заранее очищает старые события каждые 30 минут для оптимизации системной памяти. В результате на интервале правила масштабирования существует ограничение верхнего предела в 30 минут. Чтобы обеспечить согласованное и надежное инициирование действий масштабирования, необходимо задать интервал правила масштабирования таким образом, чтобы его значение было меньше предела. Следуя этому руководству, вы можете гарантировать гладкий и эффективный процесс масштабирования, эффективно управляя системными ресурсами.
Метрики кластера
Автоматическое масштабирование постоянно отслеживает кластер и собирает следующие метрики для автомасштабирования на основе нагрузки:
Метрики кластера, доступные для масштабирования
Метрический | Описание |
---|---|
Процент доступных ядер | Общее количество ядер, доступных в кластере, по сравнению с общим количеством ядер в кластере. |
Процент доступной памяти | Общая память (в МБ), доступная в кластере по сравнению с общим объемом памяти в кластере. |
Процент выделенных ядер | Общее количество ядер, выделенных в кластере, по сравнению с общим количеством ядер в кластере. |
Процент выделенной памяти | Объем памяти, выделенной в кластере, по сравнению с общим объемом памяти в кластере. |
По умолчанию указанные выше метрики проверяются каждые 300 секунд, это также можно настроить при изменении интервала опроса с помощью опции автомасштабирования. Автоматическое масштабирование принимает решения по масштабированию или уменьшению масштаба на основе этих метрик.
Заметка
По умолчанию автомасштабирование использует калькулятор ресурсов по умолчанию для YARN для Apache Spark. Масштабирование на основе нагрузки доступно для кластеров Apache Spark.
Плавное списание
Предприятиям нужны способы достижения масштабирования до уровня петабайтов с помощью автомасштабирования и аккуратного вывода ресурсов из эксплуатации, когда они больше не нужны. В таких случаях удобно использовать функцию вывода из эксплуатации.
Плавное выведение из эксплуатации позволяет заданиям завершаться даже после того, как автомасштабирование инициировало выведение из эксплуатации рабочих узлов. Эта функция позволяет узлам оставаться в процессе подготовки до тех пор, пока задания не будут завершены.
Trino: рабочие имеют плавное отключение по умолчанию. Координатор позволяет завершить работу рабочего в течение настроенного времени перед его удалением из кластера. Вы можете настроить время ожидания с помощью собственного параметра Trino
shutdown.grace-period
или на странице конфигурации службы портала Azure.Apache Spark. Уменьшение масштаба может повлиять на выполнение или остановить любые выполняющиеся задания в кластере. Если на портале Azure включена функция "Плавный вывод из эксплуатации", в нее входит Плавный вывод узлов YARN, что гарантирует завершение любой незавершенной работы на рабочем узле, прежде чем он будет удален из HDInsight в кластере AKS.
Период охлаждения
Чтобы избежать непрерывных операций масштабирования, подсистема автомасштабирования ожидает настраиваемого интервала перед инициированием другого набора операций масштабирования. Значение по умолчанию равно 180 секунд
Заметка
- В пользовательских условиях масштабирования никакое условие срабатывания правила не может иметь интервал более 30 минут. После того, как произойдет событие автоматического масштабирования, время ожидания перед применением другой политики масштабирования.
- Период охлаждения должен быть больше интервала политики, чтобы метрики кластера могли быть сброшены.
Начало работы
Для автоматического масштабирования необходимо назначить разрешение владельца или участника для MSI (используемого во время создания кластера) на уровне кластера, используя IAM на левой панели.
Ознакомьтесь со следующим рисунком и инструкциями по добавлению назначения ролей
Выберите , чтобы добавить назначение ролей.
- Тип назначения: роли привилегированного администратора
- Роль: владельца или участника
- Участники: выберите управляемое удостоверение и выберите управляемое удостоверение, назначаемое пользователем,, которое было дано на этапе создания кластера.
- Назначьте роль.
Создание кластера с автоматическим масштабированием на основе расписания
После создания пула кластеров создайте новый кластер с требуемой рабочей нагрузкой (в типе кластера) и выполните другие действия в рамках обычного процесса создания кластера.
На вкладке конфигурации включите переключатель автоматического масштабирования.
Выберите автоматическое масштабирование на основе расписания
Выберите часовой пояс и нажмите кнопку + Добавить правило
Выберите дни недели, к которым должно применяться новое условие.
Измените время, в которое должно входить условие, и количество узлов, на которые должен масштабироваться кластер.
Заметка
- Пользователь должен иметь роль "владелец" или "участник" в MSI кластера для автоматического масштабирования.
- Значение по умолчанию определяет начальный размер кластера при его создании.
- Разница между двумя расписаниями устанавливается по умолчанию на 30 минут.
- Значение времени указано в 24-часовом формате.
- В случае непрерывного окна длительностью более 24 часов на протяжении нескольких дней, необходимо настроить расписание автомасштабирования на несколько дней. При этом автомасштабирование предполагает, что 23:59 равняется 00:00 с тем же количеством узлов, охватывая период с 22:00 до 23:59 и с 00:00 до 02:00 как с 22:00 до 02:00 в течение двух дней.
- Расписания задаются по умолчанию в формате UTC. Вы всегда можете обновить часовой пояс, соответствующий местному часовой поясу в раскрывающемся списке. Если вы находитесь в часовом поясе, который переходит на летнее время, расписание не настраивается автоматически, и вам нужно управлять обновлениями расписания соответствующим образом.
Создание кластера с автоматическим масштабированием в зависимости от нагрузки
После создания пула кластеров создайте новый кластер с требуемой рабочей нагрузкой (в типе кластера) и выполните другие действия в рамках обычного процесса создания кластера.
На вкладке Конфигурация включите переключатель Автоматическое масштабирование.
Выберите автомасштабирование на основе загрузки
На основе типа рабочей нагрузки у вас есть варианты добавления корректного времени ожидания завершения работы, периода охлаждения
Выберите минимальный и максимальный узлы, а при необходимости настройте правила масштабирования, чтобы адаптировать Auto scale к вашим нуждам.
Совет
- Ваша подписка имеет объемную квоту для каждого региона. Общее количество ядер головного узла и максимальное количество рабочих узлов не может превышать квоту емкости. Однако эта квота является мягким пределом; вы всегда можете создать запрос в службу поддержки, чтобы его увеличить легко.
- Если вы превысите общий предел квоты ядра, вы получите сообщение об ошибке
The maximum node count you can select is {maxCount} due to the remaining quota in the selected subscription ({remaining} cores)
. - Правила масштабирования имеют приоритет при активации одного или нескольких правил. Даже если только одно из правил для увеличения масштаба указывает на нехватку ресурсов в кластере, кластер попытается увеличить масштаб. Для уменьшения масштаба не следует активировать правило увеличения масштаба.
- В общедоступной предварительной версии HDInsight в AKS поддерживает до 500 узлов в кластере.
Создание кластера с помощью шаблона Resource Manager
автоматическое масштабирование на основе расписания
Вы можете создать HDInsight в кластере AKS с автоматическим масштабированием на основе расписания, используя шаблон Azure Resource Manager, добавив автомасштабирование в профиль кластера в разделе> autoscaleProfile.
Узел автомасштабирования содержит повторение с часовым поясом и расписанием, которое описывает, когда происходит изменение. Полный шаблон Resource Manager см. в примере JSON
{
"autoscaleProfile": {
"enabled": true,
"autoscaleType": "ScheduleBased",
"gracefulDecommissionTimeout": 60,
"scheduleBasedConfig": {
"schedules": [
{
"days": [
"Monday",
"Tuesday",
"Wednesday"
],
"startTime": "09:00",
"endTime": "10:00",
"count": 2
},
{
"days": [
"Sunday",
"Saturday"
],
"startTime": "12:00",
"endTime": "22:00",
"count": 5
},
{
"days": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"startTime": "22:00",
"endTime": "23:59",
"count": 6
},
{
"days": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"startTime": "00:00",
"endTime": "05:00",
"count": 6
}
],
"timeZone": "UTC",
"defaultCount": 110
}
}
}
Совет
- Чтобы избежать сбоев операций масштабирования, необходимо задать не конфликтующие расписания с помощью развертываний ARM.
Автомасштабирование на основе загрузки
Вы можете создать HDInsight в кластере AKS с автомасштабированием на основе нагрузки с помощью шаблона Azure Resource Manager, добавив автомасштабирование в кластерProfile —> раздел autoscaleProfile.
Узел автомасштабирования содержит
- интервал опроса, период охлаждения,
- аккуратное завершение эксплуатации
- минимальные и максимальные узлы,
- стандартные правила порогового значения,
- Масштабирование метрик, описывающих, когда происходит изменение.
Полный шаблон Resource Manager см. в примере JSON, как показано ниже.
{
"autoscaleProfile": {
"enabled": true,
"autoscaleType": "LoadBased",
"gracefulDecommissionTimeout": 60,
"loadBasedConfig": {
"minNodes": 2,
"maxNodes": 157,
"pollInterval": 300,
"cooldownPeriod": 180,
"scalingRules": [
{
"actionType": "scaleup",
"comparisonRule": {
"threshold": 80,
"operator": " greaterThanOrEqual"
},
"evaluationCount": 1,
"scalingMetric": "allocatedCoresPercentage"
},
{
"actionType": "scaledown",
"comparisonRule": {
"threshold": 20,
"operator": " lessThanOrEqual"
},
"evaluationCount": 1,
"scalingMetric": "allocatedCoresPercentage"
}
]
}
}
}
Использование REST API
Чтобы включить или отключить автомасштабирование в работающем кластере с помощью REST API, выполните запрос PATCH к конечной точке автомасштабирования: https://management.azure.com/subscriptions/{{USER_SUB}}/resourceGroups/{{USER_RG}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSTER_POOL_NAME}}/clusters/{{CLUSTER_NAME}}?api-version={{HILO_API_VERSION}}
- Используйте соответствующие параметры в теле запроса. Нагрузку json можно использовать для активации автоматического масштабирования.
- Используйте данные нагрузки (autoscaleProfile: null) либо установите флаг (установлен, false), чтобы отключить автомасштабирование.
- Дополнительные сведения см. в примерах JSON, упомянутых на приведенном выше шаге.
Приостановка автоматического масштабирования для работающего кластера
Мы представили функцию приостановки в автоматическом масштабировании. Теперь с помощью портала Azure можно приостановить автоматическое масштабирование в работающем кластере. На следующей схеме показано, как выбрать приостановку и возобновить автомасштабирование
Вы можете возобновить операции автомасштабирования, когда захотите.
Кончик
При настройке нескольких расписаний и приостановке автомасштабирования он не активирует следующее расписание. Число узлов остается одинаковым, даже если узлы находятся в отключенном состоянии.
Копирование конфигураций автомасштабирования
С помощью портала Azure теперь можно скопировать те же конфигурации автомасштабирования для одной и той же фигуры кластера в пуле кластеров, вы можете использовать эту функцию и экспортировать или импортировать те же конфигурации.
Мониторинг действий автоматического масштабирования
Состояние кластера
Состояние кластера, указанное на портале Azure, поможет отслеживать действия автомасштабирования. Все сообщения о состоянии кластера, которые вы можете увидеть, объяснены в списке.
Состояние кластера | Описание |
---|---|
Удалось | Кластер работает обычно. Все предыдущие действия по автомасштабированию завершены успешно. |
Принято | Операция кластера (например, увеличение масштаба) принята, ожидается завершение операции. |
Ошибка | Это означает, что текущая операция завершилась ошибкой из-за какой-то причины, кластер, возможно, не работает. |
Аннулированный | Текущая операция отменяется. |
Чтобы просмотреть текущее количество узлов в кластере, перейдите на диаграмму размера кластера на странице Обзор кластера.
Журнал операций
Историю увеличения и уменьшения кластера можно просмотреть в составе показателей кластера. Вы также можете перечислить все действия масштабирования за последний день, неделю или другой период.
Дополнительные ресурсы