Поделиться через


Использование профиля автомасштабирования для настройки автомасштабирования кластера в AKS с поддержкой Arc

Область применения: AKS в Azure Stack HCI 22H2, AKS на Windows Server

Параметры в объекте профиля автомасштабирования можно использовать для определения событий масштабирования в AKS, включенных Arc. Профиль автомасштабирования кластера влияет на все пулы узлов, использующие автомасштабирование кластера; Невозможно задать профиль автомасштабирования для пула узлов. В этой статье объясняется, как работает автомасштабирование, описывает значения профиля автомасштабирования по умолчанию и описывает настройку и использование определения профиля.

Использование профилей

Профили автомасштабирования кластера имеют следующие атрибуты:

  • Профили автомасштабирования применяются ко всем пулам узлов в кластере.
  • Профили — это глобальные объекты уровня развертывания.
  • Несколько профилей доступны в AKS Arc.
  • Для данного кластера назначается только один профиль. Профиль используется для всех пулов узлов в кластере.
  • Изменения профиля применяются ко всем пулам узлов с включенным функцией автомасштабирования.

Параметры профиля

Профиль по умолчанию состоит из значений по умолчанию ниже. Вы можете обновить следующие параметры.

Параметр Описание: Default value
min-node-count Минимальное число узлов, до которого назначается пул узлов, до которого назначается этот профиль. 0
max-node-count Максимальное число узлов, в котором пул узлов, которому назначен этот профиль, может масштабироваться до. 1
scan-interval Как часто кластер переоценен для увеличения или уменьшения масштаба. 10 seconds
scale-down-delay-after-add Сколько времени после увеличения масштаба это возобновление оценки уменьшения масштаба возобновляется. 10 минут
scale-down-delay-after-delete Как долго после удаления узла, которое возобновляет масштабирование оценки. scan-interval
scale-down-delay-after-failure Сколько времени после сбоя уменьшения масштаба, который возобновляет оценку уменьшения масштаба. 3 минуты
scale-down-unneeded-time Как долго узел должен быть ненужным, прежде чем он имеет право на горизонтальное масштабирование. 10 минут
scale-down-unready-time Сколько времени нечитаемый узел должен быть ненужным, прежде чем он имеет право на масштабирование. 20 минут.
scale-down-utilization-threshold Уровень использования узла, определенный как сумма запрошенных ресурсов, разделенных емкостью, ниже которой узел можно рассматривать для уменьшения масштаба. 0,5
max-graceful-termination-sec Максимальное время (в секундах), в течение которого средство автомасштабирования кластера ожидает завершения работы pod при попытке вертикального уменьшения масштаба узла. 600 секунд
balance-similar-node-groups Обнаруживает аналогичные пулы узлов и балансирует количество узлов между ними. false
expander Тип расширения пула узлов, который будет использоваться при вертикальном увеличении масштаба. Возможные значения: most-pods, , priorityrandomleast-waste. random
skip-nodes-with-local-storage Если значение true, средство автомасштабирования кластера никогда не удаляет узлы с модулями pod с локальным хранилищем, например EmptyDir или HostPath. true
skip-nodes-with-system-pods Если значение true, средство автомасштабирования кластера никогда не удаляет узлы с модулями pod из kube-system (за исключением DaemonSet или зеркальных модулей pod). true
max-empty-bulk-delete Максимальное количество пустых узлов, которые можно удалить одновременно. 10
new-pod-scale-up-delay В таких сценариях, как ускорение или пакетное масштабирование, в которых ЦС не требуется действовать до того, как планировщик Kubernetes может запланировать все модули pod, вы можете сообщить ЦС игнорировать незапланированные модули pod, прежде чем они определенного возраста. 0 секунд
max-total-unready-percentage Максимальный процент непрочитанных узлов в кластере. После превышения этого процента ЦС останавливает операции. 45 %
max-node-provision-time Максимальное время, когда средство автомасштабирования ожидает подготовки узла. 15 минут

Заметки о настройке автомасштабирования

Параметры можно изменить в профиле автомасштабирования кластера с помощью командлета Set-AksHciAutoScalerConfig PowerShell.

Средство автомасштабирования кластера принимает решения по масштабированию на основе минимального и максимального количества, заданного в каждом пуле узлов, но он не применяет их после обновления минимального или максимального количества. Например, установка минимального количества 5, если текущее число узлов равно 3, не будет немедленно масштабировать пул до 5.

Если минимальное количество в пуле узлов имеет значение выше текущего числа узлов, новые минимальные или максимальные параметры учитываются, если есть достаточно незапланированных модулей pod, требующих двух новых дополнительных узлов и запуска события автомасштабирования. После события масштабирования учитываются новые ограничения счетчика.

Вы также можете точнее настроить средство автомасштабирования кластера, изменив значения по умолчанию в профиле средства автомасштабирования для всего кластера. Например, событие уменьшения масштаба происходит после того, как узлы недостаточно используются в течение 10 минут. Если у вас есть рабочие нагрузки, которые выполняются каждые 15 минут, может потребоваться изменить профиль автомасштабирования, чтобы уменьшить масштаб неиспользуемых узлов через 15 или 20 минут. Если не заданы другие параметры, при включении средства автомасштабирования кластера используется профиль по умолчанию.

Сохранение и загрузка профиля автомасштабирования

Вы можете сохранить и сохранить профиль автомасштабирования в определении профиля в виде YAML-файла. Вы можете вручную изменить файл YAML из текстового редактора и загрузить сохраненные определения.

Сохранение определения профиля

Вы сохраняете копию профиля в виде ФАЙЛА YAML с помощью kvactl. После определения профиля выполните следующие команды:

kvactl.exe autoscalerprofile get --name default --kubeconfig (Get-AksHciConfig).Kva.kubeconfig --outputformat=yaml > def.yaml

Изменение определения профиля

Определение профиля можно изменить в файле YAML. Например, можно открыть def.yaml в блокноте, Visual Studio Code или других текстовых редакторах.

Загрузка определения профиля

Определение профиля можно загрузить с помощью kvactl сохраненного ФАЙЛА YAML. Выполните следующую команду:

kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig

Следующие шаги