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


Назначение групп резервирования емкости пулам узлов Службы Azure Kubernetes (AKS)

По мере изменения требований рабочей нагрузки можно связать существующие группы резервирования емкости (CRG) с пулами узлов Службы Azure Kubernetes (AKS), чтобы гарантировать выделенную емкость для них. Группы резервирования емкости позволяют резервировать вычислительные мощности в регионе Azure или зоне доступности в течение любого времени. Эта функция полезна для рабочих нагрузок, требующих гарантированной емкости, таких как с прогнозируемыми шаблонами трафика или теми, которые должны соответствовать определенным требованиям к производительности.

В этой статье вы узнаете, как использовать группы резервирования ресурсов с пулами узлов в AKS.

Замечание

Удаление пула узлов автоматически отключает его от связанной группы резервирования емкости перед удалением самого пула. Удаление кластера неявно разобщает все пулы узлов в этом кластере от связанных групп резервирования емкости.

Предварительные требования для использования групп резервирования емкости с пулами узлов AKS

  • Вам потребуется Azure CLI версии 2.56 или более поздней. Чтобы узнать версию, выполните команду az --version. Если вам нужно установить или обновить, см. статью "Установка Azure CLI".
  • Вам нужна существующая группа резервирования емкости с по крайней мере одним резервированием емкости. Если нет, пул узлов добавляется в кластер с предупреждением, и группа резервирования емкости не будет связана.
  • Вам необходимо создать управляемую пользователем идентичность с Contributor ролью для группы ресурсов, включающей группу резервирования емкости, и назначить эту идентичность вашему кластеру AKS. Назначаемые системой управляемые удостоверения не работают для этой функции.

Создайте управляемую идентичность, назначенную пользователем, и привяжите её к кластеру AKS.

  1. Создайте пользовательское управляемое удостоверение с помощью команды az identity create.

    az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>
    
  2. Получите идентификатор управляемого удостоверения, назначенного пользователю, используя команду az identity show, и установите его в переменной среды.

    IDENTITY_ID=$(az identity show --name <identity-name> --resource-group <resource-group-name> --query identity.id -o tsv)
    
  3. Назначьте роль идентификации, назначенной пользователем, с помощью команды az role assignment create.

    az role assignment create --assignee $IDENTITY_ID --role "Contributor" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>
    

    Распространение назначения роли может занять до 60 минут.

  4. Назначьте управляемое удостоверение, назначаемое пользователем, новому или существующему кластеру AKS, используя флаг --assign-identity с командой az aks create или az aks update.

    # Create a new AKS cluster with the user-assigned managed identity
    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> --node-count <node-count> \
        --assign-identity $IDENTITY_ID \
        --generate-ssh-keys
    
    # Update an existing AKS cluster to use the user-assigned managed identity
    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> \
        --node-count <node-count> \
        --enable-managed-identity \
        --assign-identity $IDENTITY_ID         
    

Ограничения использования групп резервирования мощности с пулами узлов AKS

Невозможно обновить существующий пул узлов, включающий группу резервирования ресурсов. Вместо этого необходимо создать пул узлов с флагом --crg-id , чтобы связать его с группой резервирования емкости. Вы также можете связать существующую группу резервирования емкости с пулом системных узлов во время создания кластера.

Получение идентификатора существующей группы резервирования емкости

  • Получите идентификатор существующей группы резервирования емкости с помощью az capacity reservation group show команды и задайте для нее переменную среды.

    CRG_ID=$(az capacity reservation group show --capacity-reservation-group <crg-name> --resource-group <resource-group-name> --query id -o tsv)
    

Связывание существующей группы резервирования емкости с пулом узлов

  • Свяжите существующую группу резервирования емкости с пулом узлов с помощью az aks nodepool add команды с флагом --crg-id . В следующем примере предполагается, что у вас есть CRG с именем myCRG.

    az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID
    

Связывание существующей группы резервирования емкости с пулом системных узлов

Чтобы связать существующую группу резервирования емкости с пулом системных узлов, необходимо назначить назначаемое пользователем управляемое удостоверение с ролью Contributor при создании кластера. Затем можно использовать --crg-id флаг для связывания группы резервирования емкости с пулом системных узлов.

  • Создайте новый кластер AKS с управляемым удостоверением, назначенным пользователем, и свяжите его с группой резервирования емкости, используя флаги --assign-identity и --crg-id с командой az aks create.

    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> --node-count <node-count> \
        --assign-identity $IDENTITY_ID \
        --crg-id $CRG_ID \
        --generate-ssh-keys
    

Дальнейшие действия. Управление пулами узлов в AKS

Дополнительные сведения об управлении пулами узлов в AKS см. в статье "Управление пулами узлов" в службе Azure Kubernetes (AKS).