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


Использование пулов узлов виртуальных машин в службе Azure Kubernetes (AKS)

В этой статье вы узнаете о новом типе пула узлов виртуальных машин для AKS.

С помощью пулов узлов Виртуальных машин AKS напрямую управляет подготовкой и инициализацией каждого отдельного узла. Для пулов узлов, созданных на основе Масштабируемых наборов виртуальных машин, AKS управляет моделью этих наборов и использует её для обеспечения согласованности между всеми узлами в пуле. Пулы узлов виртуальных машин позволяют оркестрировать кластер с виртуальными машинами, которые лучше всего подходят для индивидуальных рабочих нагрузок.

Обзор

Принцип работы

Пул узлов состоит из набора виртуальных машин, где разные размеры виртуальных машин предназначены для поддержки различных типов рабочих нагрузок. Эти размеры виртуальных машин, называемые номерами SKU, классифицируются в разных семействах, оптимизированных для конкретных целей. Дополнительные сведения см. в статье SKU виртуальных машин.

Чтобы обеспечить масштабирование нескольких размеров виртуальных машин, пул узлов виртуальных машин использует ScaleProfile с конфигурациями, которые указывают, как пул может масштабироваться. Эти конфигурации включают в себя желаемый список размеров виртуальных машин и количество экземпляров каждого размера. Это ManualScaleProfile профиль масштабирования, указывающий необходимый размер виртуальной машины и общее количество таких машин в nodepool. В ней допускается только один размер виртуальной ManualScaleProfileмашины. Необходимо создать отдельный ManualScaleProfile размер каждой виртуальной машины в пуле узлов. В процессе создания нового пула узлов виртуальных машин вы вводите начальный ручной масштаб для размера виртуальной машины, используя поле vm-size и включая node-count, приведенные ниже инструкции. Вы также можете добавить дополнительные профили масштабирования вручную, следуя инструкциям по добавлению профилей масштабирования вручную.

Примечание.

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

Достоинства

Преимущества типа пула узлов на виртуальных машинах включают:

  • Гибкость. Спецификации узлов можно обновить, чтобы адаптироваться к текущей рабочей нагрузке и потребностям.
  • Точно настроенные элементы управления: управление на уровне одного узла позволяет указывать и комбинировать узлы с различными спецификациями для снятия ограничений с одной модели и улучшения согласованности.
  • Эффективность. Вы можете уменьшить объем памяти узла для кластера, упрощая требования к работе.

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

Сравнение возможностей

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

Тип пула узлов Возможности
пул узлов виртуальных машин Вы можете добавлять, удалять или обновлять узлы в пуле узлов. Типы виртуальных машин могут быть любой виртуальной машиной данного семейства (например, серии D, серии A и т. д.).
Пул узлов, основанный на масштабируемом наборе виртуальных машин Вы можете добавлять или удалять узлы с одинаковым размером и типом в пуле узлов. При добавлении нового размера виртуальной машины в кластер необходимо создать пул узлов.

Ограничения

  • Автомасштабирование кластера в настоящее время не поддерживается.
  • InifiniBand недоступна.
  • Снимок пула узлов не поддерживается.
  • Все размеры виртуальных машин, выбранные в пуле узлов, должны находиться в аналогичном семействе виртуальных машин. Например, нельзя смешивать тип виртуальной машины серии N с типом виртуальной машины серии D в одном пуле узлов.
  • Виртуальные машины для пулов узлов позволяют использовать до пяти различных размеров виртуальных машин в каждом пуле узлов.

Предварительные условия

  • Подписка Azure. Если ее нет, можно создать бесплатную учетную запись.
  • Azure CLI версии 2.73.0 или более поздней, установлена и настроена. Чтобы узнать версию, выполните команду az --version. Дополнительные сведения об установке или обновлении Azure CLI см. в статье "Установка Azure CLI"
  • Для этой функции требуется kubernetes версии 1.27 или более поздней. Сведения об обновлении версии Kubernetes см. в разделе "Обновление кластера AKS"

Создание кластера AKS с пулами узлов на виртуальных машинах

Примечание.

В профиле масштабирования допускается только один размер виртуальной машины, а максимальный предел — пять профилей масштабирования виртуальных машин в целом для пула узлов Виртуальные машины.

  • Создайте кластер AKS с пулами узлов с виртуальными машинами с использованием az aks create команды с заданным флагом --vm-set-type"VirtualMachines".

    В следующем примере создается кластер с именем myAKSCluster с пулом узлов виртуальных машин, содержащим два узла, создает ключи SSH, задает номер SKU подсистемы балансировки нагрузки стандартным и задает для Kubernetes версию 1.31.0:

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --vm-set-type "VirtualMachines" \
        --vm-sizes "Standard_D4s_v3" 
        --node-count 2 \
        --kubernetes-version 1.31.0
    

Создайте кластер с поддержкой Windows и пулом узлов Windows Виртуальной Машины

Пулы узлов виртуальной машины доступны в кластерах с поддержкой Windows. В следующем примере создается кластер с именем myAKSCluster с пулом узлов виртуальных машин. Сначала эти действия создают системный пул Linux.

  1. Создайте имя пользователя для использования в качестве учетных данных администратора для узлов Windows Server в кластере. Следующая команда запрашивает имя пользователя и задает для него значение WINDOWS_USERNAME для использования в следующей команде.

    echo "Please enter the username to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_USERNAME
    
  2. Создайте пароль для имени администратора, созданного на предыдущем шаге. Пароль должен быть не менее 14 символов и соответствовать требованиям к сложности паролей Windows Server.

    echo "Please enter the password to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_PASSWORD
    
  3. Создайте кластер AKS с поддержкой Windows и пулами узлов типа виртуальных машин с помощью az aks create команды с установленным --vm-set-typeфлагом"VirtualMachines".

    az aks create \ 
       --resource-group myResourceGroup \
       --name myAKSCluster \
       --node-count 2 \
       --enable-addons monitoring \
       --generate-ssh-keys \
       --windows-admin-username $WINDOWS_USERNAME \
       --windows-admin-password $WINDOWS_PASSWORD \
       --vm-set-type "VirtualMachines" \
       --network-plugin azure
    
  4. Добавьте пул узлов виртуальных машин в существующий кластер с поддержкой Windows с помощью az aks nodepool add команды с установленным --vm-set-typeфлагом"VirtualMachines". В следующем примере в кластер myAKSCluster добавляется пул узлов виртуальных машин с именем npwin:

    az aks nodepool add
       --resource-group myResourceGroup \
       --cluster-name myAKSCluster \
       --os-type Windows \
       --name npwin \
       --vm-sizes "Standard_D2s_V3" \
       --node-count 1
       --vm-set-type "VirtualMachines"
    

Добавление пула узлов Виртуальные машины в существующий кластер

  • Добавьте пул узлов Виртуальные машины в существующий кластер с помощью az aks nodepool add команды с установленным --vm-set-typeфлагом"VirtualMachines".

    В следующем примере добавляется пул узлов Виртуальные машины с именем myvmpool в кластер myAKSCluster. Пул узлов создает профиль ManualScaleProfile с параметром --vm-sizesStandard_D4s_v3 и количеством --node-count 3.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myvmpool \
        --vm-set-type "VirtualMachines" \
        --vm-sizes "Standard_D4s_v3" \
        --node-count 3
    

Добавить профиль ручного масштабирования в пул узлов

  • Добавьте профиль ручного масштабирования в пул узлов, используя az aks nodepool manual-scale add, с флагом --vm-sizes установленным в "Standard_D2s_v3" и node-count равным 2.

    Следующий пример добавляет профиль масштабирования вручную в пул узлов myvmpool в кластере myAKSCluster. Пул узлов включает два узла с виртуальной машиной типа SKU Standard_D2s_v3.

    az aks nodepool manual-scale add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myvmpool \
        --vm-sizes "Standard_D2s_v3" \
        --node-count 2
    

Обновление существующего профиля масштабирования вручную

  • Обновите существующий профиль масштабирования вручную в пуле узлов с помощью команды az aks nodepool manual-scale update, используя флаг --vm-sizes"Standard_D2s_v3".

    Примечание.

    --current-vm-sizes Используйте параметр, чтобы указать размер существующего пула узлов, который требуется обновить. Вы можете обновить --vm-sizes и/или --node-count. При использовании других инструментов или REST API необходимо передать полностью заполненное поле agentPoolProfiles.virtualMachinesProfile.scale при обновлении профиля масштабирования пула узлов.

    В следующем примере обновляется профиль ручного масштабирования для пула узлов myvmpool в кластере myAKSCluster. Команда обновляет количество узлов до пяти и изменяет номер SKU виртуальной машины с Standard_D4s_v3 на Standard_D8s_v3:

    az aks nodepool manual-scale update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myvmpool \
        --current-vm-sizes "Standard_D4s_v3" \
        --vm-sizes "Standard_D8s_v3" \
        --node-count 5
    

Удаление профиля ручного масштабирования

  • Удалите существующий профиль масштабирования вручную с помощью az aks nodepool manual-scale delete команды.

    Примечание.

    Параметр --current-vm-sizes указывает размер существующего пула узлов, который необходимо удалить. При использовании других средств или REST API для обновления профиля масштабирования пула узлов передайте полное agentPoolProfiles.virtualMachinesProfile.scale поле.

    В следующем примере удаляется профиль ручного масштабирования для SKU виртуальной машины Standard_D8s_v3 в пуле узлов myvmpool.

    az aks nodepool manual-scale delete \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myvmpool \
        --current-vm-sizes "Standard_D8s_v3"
    

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

Из этой статьи вы узнали, как использовать пулы узлов Виртуальные машины в AKS. Дополнительные сведения о пулах узлов в AKS см. в статье "Создание пулов узлов".