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


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

Область применения: Локальная версия Azure, версия 23H2

Чтобы обеспечить соответствие требованиям приложений в Kubernetes, может потребоваться настроить количество узлов, выполняющих рабочие нагрузки. Компонент автомасштабирования кластера наблюдает за модулями pod в кластере, которые не могут быть запланированы из-за ограничений ресурсов. Когда средство автомасштабирования кластера обнаруживает проблемы, оно масштабирует число узлов в пуле узлов для удовлетворения требований приложения. Он также регулярно проверяет узлы на наличие нехватки запущенных модулей pod и масштабирует количество узлов по мере необходимости. В этой статье показано, как включить и управлять автомасштабированием кластера в AKS Arc.

Включение автомасштабирования кластера в новом кластере

Создайте кластер AKS Arc с помощью az aksarc create команды и включите и настройте автомасштабирование кластера в пуле узлов для кластера с помощью --enable-cluster-autoscaler параметра и указания --min-count --max-count узла. Следующая команда создает кластер с одним узлом, включает автомасштабирование кластера и задает как минимум один и не более трех узлов:

az aksarc create \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--custom-location $customLocationId 
--vnet-ids $vnetId
--generate-ssh-keys
--aad-admin-group-object-ids $entraIds
--node-count 1 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3

Создание кластера и настройка параметров автомасштабирования кластера занимает несколько минут.

Включение Средства автомасштабирования кластера в имеющемся кластере

Обновите существующий кластер с помощью команды и включите и настройте автомасштабирование кластера с помощью az aksarc update --enable-cluster-autoscaler параметра и указания --min-count --max-count узла. В следующем примере команда обновляет существующий кластер AKS Arc, чтобы включить автомасштабирование кластера в кластере и задать как минимум один и не более трех узлов:

az aksarc update \
  --resource-group myResourceGroup \
  --name my-aks-arc-cluster \
  --enable-cluster-autoscaler \
  --min-count 1 \
  --max-count 3

Обновление кластера и настройка параметров его автомасштабирования занимает несколько минут.

Отключение автомасштабирования кластера в кластере

Отключите автомасштабирование кластера с помощью az aksarc update команды и --disable-cluster-autoscaler параметра:

az aksarc update \
  --resource-group myResourceGroup \
  --name my-aks-arc-cluster \
  --disable-cluster-autoscaler

При отключении средства автомасштабирования кластера узлы не удаляются.

Обновление параметров автомасштабирования кластера

По мере изменения требований приложения может потребоваться настроить количество узлов автомасштабирования кластера для эффективного масштабирования. Измените количество узлов с помощью команды и обновите автомасштабирование кластера с помощью az aksarc update --update-cluster-autoscaler параметра и укажите обновленный --min-count и --max-count для узла.

az aksarc update \
  --resource-group myResourceGroup \
  --name myAKSCluster \
  --update-cluster-autoscaler \
  --min-count 1 \
  --max-count 5

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

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

Параметры профиля автомасштабирования кластера

В следующей таблице перечислены доступные параметры для профиля автомасштабирования кластера:

Параметр Описание: Default value
scan-interval Как часто кластер переоценен для увеличения или уменьшения масштаба. 10 seconds
scale-down-delay-after-add Сколько времени после увеличения масштаба это возобновление оценки уменьшения масштаба возобновляется. 10 минут
scale-down-delay-after-delete Как долго после удаления узла, которое возобновляет масштабирование оценки. scan-interval
scale-down-delay-after-failure Как долго после сбоя уменьшения масштаба, который возобновляет оценку уменьшения масштаба. три минуты.
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, randomи least-wastepriority.
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 минут

Настройка профиля автомасштабирования кластера в новом кластере

Создайте кластер AKS Arc с помощью az aksarc create команды и задайте профиль автомасштабирования кластера с помощью cluster-autoscaler-profile параметра:

az aksarc create \
  --resource-group myResourceGroup \
  --name my-aks-arc-cluster \
  --node-count 1 \
  --enable-cluster-autoscaler \
  --min-count 1 \
  --max-count 3 \
  --cluster-autoscaler-profile scan-interval=30s

Настройка профиля автомасштабирования кластера в существующем кластере

Задайте автомасштабирование кластера в существующем кластере с помощью az aksarc update команды и cluster-autoscaler-profile параметра. В следующем примере параметр интервала сканирования настраивается как 30s:

az aksarc update \
  --resource-group myResourceGroup \
  --name my-aks-arc-cluster \
  --cluster-autoscaler-profile scan-interval=30s

Восстановление значений по умолчанию для профиля средства автомасштабирования кластера

Сброс профиля автомасштабирования кластера с помощью az aksarc update команды:

az aksarc update \
  --resource-group myResourceGroup \
  --name my-aks-arc-cluster \
  --cluster-autoscaler-profile ""

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

В этой статье показано, как автоматически масштабировать количество узлов AKS Arc. Сведения о масштабировании пулов узлов вручную см. в статье об управлении пулами узлов в кластерах AKS Arc.