Использование автомасштабирования кластера в кластере 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-waste priority . |
|
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.