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


Защита экземпляров в масштабируемом наборе виртуальных машин Azure

Масштабируемые наборы виртуальных машин Azure обеспечивают лучшую эластичность для рабочих нагрузок с помощью Автомасштабирования, чтобы настроить, когда ваша инфраструктура увеличивает количество ресурсов и когда уменьшает. Масштабируемые наборы также позволяют централизованно управлять, настраивать и обновлять большое количество виртуальных машин с помощью различных параметров политики обновления . Вы можете настроить обновление для модели масштабируемого набора, а новая конфигурация применяется автоматически к каждому экземпляру масштабируемого набора, если вы установили для политики обновления значение Automatic или Rolling.

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

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

Типы защиты экземпляров

Масштабируемые наборы предоставляют два типа функций защиты экземпляров.

  • Защита от масштабирования

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

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

Защита от уменьшения горизонтального масштаба

После создания экземпляров можно применить защиту экземпляров к экземплярам масштабируемого набора. Защита применяется и изменяется только в модели экземпляра, а не в модели набора масштабирования.

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

Портал Azure

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

  1. Перейдите в существующий масштабируемый набор виртуальных машин.
  2. Выберите инстанции в меню слева, в разделе Параметры.
  3. Выберите имя экземпляра, который требуется защитить.
  4. Перейдите на вкладку "Политика защиты ".
  5. В колонке "Политика защиты" выберите параметр "Защитить от масштабирования ".
  6. Нажмите кнопку "Сохранить".

REST API

В следующем примере применяется защита масштабирования к экземпляру в масштабируемом наборе.

PUT on `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualMachines/{instance-id}?api-version=2019-03-01`
{
  "properties": {
    "protectionPolicy": {
      "protectFromScaleIn": true
    }
  }        
}

Замечание

В режиме гибкой оркестрации защита экземпляров поддерживается только в API версии 2023-09-01 и выше. Для режима единообразной оркестрации защита экземпляров доступна с версии API 2019-03-01 и выше.

Azure PowerShell

Используйте командлет Update-AzVmssVM , чтобы применить защиту масштабирования к экземпляру масштабируемого набора.

В следующем примере применяется защита масштабирования к экземпляру в масштабируемом наборе с идентификатором экземпляра 0.

Update-AzVmssVM `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myVMScaleSet" `
  -InstanceId 0 `
  -ProtectFromScaleIn $true

Azure CLI 2.0

Используйте az vmss update , чтобы применить защиту масштабирования к экземпляру масштабируемого набора.

В следующем примере применяется защита масштабирования к экземпляру в масштабируемом наборе с идентификатором экземпляра 0.

az vmss update \  
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --instance-id 0 \
  --protect-from-scale-in true

Защита от действий масштабируемого набора

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

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

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

Портал Azure

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

  1. Перейдите в существующий масштабируемый набор виртуальных машин.
  2. Выберите Экземпляры в меню слева в разделе Параметры.
  3. Выберите имя экземпляра, который требуется защитить.
  4. Перейдите на вкладку "Политика защиты ".
  5. В разделе "Политика защиты" выберите параметр "Защита от действий в группе масштабирования".
  6. Нажмите кнопку "Сохранить".

REST API

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

PUT on `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vMScaleSetName}/virtualMachines/{instance-id}?api-version=2019-03-01`
{
  "properties": {
    "protectionPolicy": {
      "protectFromScaleIn": true,
      "protectFromScaleSetActions": true
    }
  }        
}

Замечание

Защита экземпляров поддерживается только в API версии 2019-03-01 и выше.
Защита экземпляра от действий масштабируемого набора также защищает его от уменьшения, инициированного функцией автомасштабирования. Невозможно указать "protectFromScaleIn": false при настройке "protectFromScaleSetActions": true

Azure PowerShell

Используйте командлет Update-AzVmssVM , чтобы применить защиту от действий масштабируемого набора к экземпляру масштабируемого набора.

В следующем примере применяется защита от операций масштабируемого набора к экземпляру с идентификатором 0 в масштабируемом наборе.

Update-AzVmssVM `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myVMScaleSet" `
  -InstanceId 0 `
  -ProtectFromScaleIn $true `
  -ProtectFromScaleSetAction $true

Azure CLI 2.0

Используйте az vmss update , чтобы применить защиту от действий масштабируемого набора к экземпляру масштабируемого набора.

В следующем примере применяется защита от действий масштабируемого набора к экземпляру в масштабируемом наборе с идентификатором экземпляра 0.

az vmss update \  
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --instance-id 0 \
  --protect-from-scale-in true \
  --protect-from-scale-set-actions true

Устранение неполадок

Нет политики защиты в модели масштабируемого набора.

Защита экземпляров применима только к экземплярам масштабируемого набора, а не к модели масштабируемого набора.

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

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

Защиту экземпляров можно применить к инстанциям масштабируемого набора после их создания.

Не удается применить защиту экземпляров

Защита экземпляров поддерживается только в API версии 2019-03-01 и выше. Проверьте версию API, используемую и обновляемую по мере необходимости. Возможно, вам также потребуется обновить PowerShell или CLI до последней версии.

Дальнейшие шаги

Узнайте, как развернуть приложение на масштабируемых наборах виртуальных машин.