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


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

Область применения: ✔️ Универсальный масштабируемый набор

Масштабируемые наборы виртуальных машин работают в двух режимах:

  • Единый режим оркестрации. В этом режиме Масштабируемые наборы виртуальных машин использовать профиль виртуальной машины или шаблон для масштабирования до требуемой емкости. Вы можете управлять отдельными экземплярами виртуальных машин и настраивать их, но Uniform использует идентичные экземпляры виртуальных машин. Эти экземпляры предоставляются через API виртуальных машин Масштабируемые наборы виртуальных машин и несовместимы со стандартными командами API виртуальных машин IaaS Azure. Так как масштабируемый набор выполняет все фактические операции виртуальной машины, резервирование связано с масштабируемым набором виртуальных машин напрямую. После того как масштабируемый набор связан с резервированием, все последующие выделения виртуальных машин выполняются для резервирования.
  • Режим гибкой оркестрации. В этом режиме вы получаете больше гибкости для управления отдельными экземплярами виртуальных машин масштабируемого набора виртуальных машин, так как они могут использовать стандартные API виртуальных машин Azure IaaS вместо использования интерфейса масштабируемого набора. Чтобы использовать резервирования с гибким режимом оркестрации, определите свойство масштабируемого набора виртуальных машин и свойство резервирования емкости на каждой виртуальной машине.

Дополнительные сведения об этих режимах см. в статье Режимы оркестрации для масштабируемых наборов виртуальных машин.

Это содержимое относится к режиму универсальной оркестрации. Для гибкого режима оркестрации перейдите в раздел "Связывание масштабируемого набора виртуальных машин" с гибкой оркестрацией с группой резервирования емкости

Ограничения масштабируемых наборов в режиме универсальной оркестрации

  • Для масштабируемых наборов виртуальных машин в режиме универсальной оркестрации для обеспечения совместимости с функцией резервированием емкости свойству singlePlacementGroup необходимо присвоить значение False.
  • При резервировании емкости для универсальных масштабируемых наборов в нескольких зонах не поддерживается режим статического фиксированного распределения доступности. Этот режим требует использования 5 доменов сбоя, тогда как резервирование поддерживает до 3 доменов сбоя для типоразмеров общего назначения. Рекомендуется использовать режим максимального распределения, в котором виртуальные машины распределены по максимальному количеству доменов сбоя в каждой зоне. При необходимости задайте число доменов сбоя 3 или менее.

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

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

Внимание

Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub

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

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01

Добавьте свойство capacityReservationGroup в свойство virtualMachineProfile:

{ 
    "name": "<VMScaleSetName>", 
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}", 
    "type": "Microsoft.Compute/virtualMachineScaleSets", 
    "location": "eastus", 
    "sku": { 
        "name": "Standard_D2s_v3", 
        "tier": "Standard", 
        "capacity": 3 
}, 
"properties": { 
    "virtualMachineProfile": { 
        "capacityReservation": { 
            "capacityReservationGroup":{ 
                "id":"subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroup/{CapacityReservationGroupName}" 
            } 
         }, 
        "osProfile": { 
            … 
        }, 
        "storageProfile": { 
            … 
        }, 
        "networkProfile": { 
            …,
            "extensionProfile": { 
                … 
            } 
        } 
    } 

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

Чтобы добавить существующую группу резервирования мощности в существующий универсальный масштабируемый набор, сделайте следующее:

  • Приостановите работу масштабируемого набора, чтобы освободить экземпляры виртуальных машин.
  • Обновите масштабируемый набор для использования соответствующей группы резервирования мощности.
  • Запустите масштабируемый набор.

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

Важные замечания по политикам обновления

  • Автоматическое обновление: в этом режиме экземпляры виртуальных машин масштабируемого набора автоматически связываются с группой резервирования мощности без каких-либо дальнейших действий. При повторном выделении виртуальных машин масштабируемого набора они начинают потреблять зарезервированную емкость.
  • Последовательное обновление: в этом режиме экземпляры виртуальных машин масштабируемых наборов связываются с группой резервирования мощности без каких-либо дальнейших действий. Но эти обновления выполняются в пакетном режиме, и между изменениями может наблюдаться некоторая задержка. При повторном выделении виртуальных машин масштабируемого набора они начинают потреблять зарезервированную емкость.
  • Обновление вручную. В этом режиме ничего не происходит с экземплярами виртуальных машин масштабируемого набора, когда масштабируемый набор виртуальных машин подключен к группе резервирования емкости. Необходимо обновить каждую виртуальную машину масштабируемого набора, обновив ее с помощью последней модели масштабируемого набора.
  1. Отмените выделение масштабируемого набора виртуальных машин.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/deallocate?api-version=2021-04-01
    
  2. Добавьте свойство capacityReservationGroup в модель масштабируемого набора. Создайте следующий запрос PUT для поставщика Microsoft.Compute:

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01
    

    Включите в текст запроса свойство capacityReservationGroup:

    "location": "eastus",
    "properties": {
        "virtualMachineProfile": {
             "capacityReservation": {
                      "capacityReservationGroup": {
                            "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}"
                      }
                }
        }
    }
    

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

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

Представление экземпляра группы резервирования емкости отражает новые виртуальные машины масштабируемого набора под virtualMachinesAssociated свойствами: virtualMachinesAllocated

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}?$expand=instanceview&api-version=2021-04-01 
{ 
    "name": "<CapacityReservationGroupName>", 
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}", 
    "type": "Microsoft.Compute/capacityReservationGroups", 
    "location": "eastus" 
}, 
    "properties": { 
        "capacityReservations": [ 
            { 
                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{CapacityReservationName}" 
            } 
        ], 
        "virtualMachinesAssociated": [ 
            { 
                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/virtualMachines/{VirtualMachineId}" 
            } 
        ], 
        "instanceView": { 
            "capacityReservations": [ 
                { 
                    "name": "<CapacityReservationName>", 
                    "utilizationInfo": { 
                        "virtualMachinesAllocated": [ 
                            { 
                                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/virtualMachines/{VirtualMachineId}" 
                            } 
                        ] 
                    },
                    "statuses": [ 
                        { 
                            "code": "ProvisioningState/succeeded", 
                            "level": "Info", 
                            "displayStatus": "Provisioning succeeded", 
                            "time": "2021-05-25T15:12:10.4165243+00:00" 
                        } 
                    ] 
                } 
            ] 
        } 
    } 
} 

Рекомендации по регионам и зонам доступности

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

Внимание

Расположение (регион и Зоны доступности) масштабируемого набора виртуальных машин, а группа резервирования емкости должна соответствовать успешной связи. Для регионального масштабируемого набора должны совпадать регионы масштабируемого набора и группы резервирования мощности. Для зонального масштабируемого набора должны совпадать регионы и зоны масштабируемого набора и группы резервирования мощности.

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

В этом примере для каждой зоны зарезервировано разное количество машин. Предположим, что масштабируемый набор виртуальных машин масштабируется до 75 экземпляров. Так как масштабируемый набор всегда будет пытаться развернуться равномерно между зонами, распределение виртуальных машин должно выглядеть следующим образом:

Зона Зарезервированное количество № виртуальных машин масштабируемого набора в каждой зоне Неиспользованное зарезервированное количество Превышение числа
1 40 25 15 0
2 20 25 0 5
3 15 25 0 10

В этом случае для масштабируемого набора начисляется дополнительная плата за 15 неиспользуемых экземпляров в зоне 1. При горизонтальном масштабировании также используются 5 виртуальных машин в зоне 2 и 10 виртуальных машин в зоне 3, не защищенные резервированием мощности. Если в каждой зоне зарезервировано 25 экземпляров мощности, то все 75 виртуальных машин будут защищены резервированием мощности и такое развертывание не создаст дополнительных затрат на неиспользуемые экземпляры.

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

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