Использование профиля автомасштабирования для настройки автомасштабирования кластера в 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 , , priority random least-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