Автоматическое восстановление экземпляров для Azure Масштабируемые наборы виртуальных машин
Включение автоматического восстановления экземпляров для Azure Масштабируемые наборы виртуальных машин помогает обеспечить высокий уровень доступности для приложений, сохраняя набор работоспособных экземпляров. Если неработоспособный экземпляр найден расширением "Работоспособность приложений" или пробами работоспособности подсистемы балансировки нагрузки, автоматическое восстановление экземпляра попытается восстановить, активировав действия восстановления, такие как удаление неработоспособного экземпляра и создание нового для его замены, повторное создание неработоспособного экземпляра или перезапуск неработоспособного экземпляра.
Требования к использованию автоматического исправления экземпляров
Включение мониторинга работоспособности приложений для масштабируемого набора
В масштабируемом наборе должен быть включен мониторинг работоспособности приложений для экземпляров. Мониторинг работоспособности можно выполнять с помощью расширения работоспособности приложений или проб работоспособности подсистемы балансировки нагрузки, где одновременно можно включить только один. Расширение "Работоспособность приложений" или пробы балансировщика нагрузки проверяют связь с конечной точкой приложений, настроенной на экземплярах виртуальных машин, чтобы определить состояние работоспособности приложения. Это состояние работоспособности используется оркестратором масштабируемого набора для отслеживания работоспособности экземпляров и их исправления по мере необходимости.
Настройка конечной точки для предоставления данных о состоянии работоспособности
Прежде чем включить политику автоматического восстановления экземпляров, убедитесь, что экземпляры масштабируемого набора имеют конечную точку приложения, настроенную для получения состояния работоспособности приложения. Чтобы настроить состояние работоспособности для расширения работоспособности приложений, можно использовать двоичные состояния работоспособности или богатые состояния работоспособности. Сведения о настройке состояния работоспособности с помощью проб работоспособности подсистемы балансировки нагрузки см. в статье о поведении пробы.
Например, экземпляры, помеченные как "Неработоспособный" или "Неизвестный" (неизвестное состояние доступно только с расширением "Работоспособность приложений" — расширенные состояния работоспособности), автоматические исправления активируются масштабируемым набором. Убедитесь, что конечная точка приложения настроена правильно, прежде чем включать политику автоматического исправления, чтобы избежать нежелательного исправления экземпляров, пока производится настройка конечной точки.
Версия API
Политика автоматического исправления поддерживается для API вычислений, начиная с версии 2018-10-01.
Параметр repairAction
для повторного создания и перезапуска поддерживается для вычислительных API версии 2021-11-01 или более поздней.
Ограничения на перемещение ресурсов и подписок
В настоящее время для масштабируемых наборов со включенной функцией автоматического исправления перемещение ресурсов и подписок не поддерживается.
Ограничение для масштабируемых наборов Service Fabric
В настоящее время эта возможность не поддерживается для масштабируемых наборов Service Fabric.
Ограничение для виртуальных машин с ошибками подготовки
Автоматическое восстановление в настоящее время не поддерживает сценарии, в которых экземпляр виртуальной машины помечен как неработоспособный из-за сбоя подготовки. Виртуальные машины должны быть успешно инициализированы, чтобы обеспечить мониторинг работоспособности и возможности автоматического восстановления.
Как работает автоматическое исправление экземпляров?
Функция автоматического исправления экземпляров основывается на мониторинге работоспособности отдельных экземпляров в масштабируемом наборе. Экземпляры виртуальных машин в масштабируемом наборе можно настроить на выдачу информации о состоянии работоспособности либо с помощью расширения "Работоспособность приложения", либо с помощью проб работоспособности балансировщика нагрузки. Если экземпляр неработоспособен, масштабируемый набор выполнит предварительно настроенное действие восстановления для неработоспособного экземпляра. Автоматическое восстановление экземпляров можно включить в модели масштабируемого набора виртуальных машин с помощью automaticRepairsPolicy
объекта.
Процесс автоматического восстановления экземпляра выполняется следующим образом:
- Расширение "Работоспособность приложения" или пробы работоспособности балансировщика нагрузки проверяют связь с конечной точкой приложения внутри каждой из виртуальных машин в масштабируемом наборе, чтобы определить состояние работоспособности приложения в каждом из экземпляров.
- Если конечная точка отвечает, возвращая состояние 200 (ОК), экземпляр помечается как "Работоспособный". Во всех остальных случаях (в том числе при недоступности конечной точки) экземпляр помечается как "Неработоспособный".
- Если экземпляр неработоспособен, масштабируемый набор применяет настроенное действие восстановления (по умолчанию — Замена) к неработоспособному экземпляру.
- Исправление экземпляров выполняется в пакетах. В любой момент времени может производиться исправление не более чем 5 % от общего количества экземпляров в масштабируемом наборе. Если масштабируемый набор содержит менее 20 экземпляров, то исправление производится по одному неработоспособному экземпляру за раз.
- Описанный выше процесс продолжается, пока не будут исправлены все неработоспособные экземпляры в масштабируемом наборе.
Доступные действия по восстановлению
Существует три доступных действия по восстановлению для автоматического восстановления экземпляра— замена, повторное создание и перезапуск. Действие восстановления по умолчанию — Replace, но вы можете настроить автоматическое восстановление для использования Reimage или Restart, изменив repairAction
параметр в automaticRepairsPolicy
объекте.
Заменяет неработоспособный экземпляр и создает новый экземпляр для его замены. Последняя модель масштабируемого набора виртуальных машин используется для создания нового экземпляра. Это действие восстановления по умолчанию.
Повторное копирование применяет операцию повторного создания к неработоспособной экземпляру.
Перезапуск применяет операцию перезапуска к неработоспособного экземпляру.
В следующей таблице сравниваются различия между всеми тремя действиями восстановления:
Действие восстановления | Идентификатор экземпляра виртуальной машины сохранен? | Частный IP-адрес сохранен? | Сохраненный управляемый диск данных? | Управляемый диск ОС сохранен? | Локальный (временный) диск сохранен? |
---|---|---|---|---|---|
Замена (по умолчанию) | No | No | No | No | No |
Пересоздание образа | Да | Да | Да | No | Да |
Перезагрузить | Да | Да | Да | Да | Да |
Дополнительные сведения об обновлении действия восстановления в политике автоматического восстановления см . в разделе "Настройка действия восстановления" для раздела политики автоматического восстановления.
Пакетная обработка
Операции автоматического исправления экземпляров выполняются в пакетах. В любой момент времени с помощью политики автоматического исправления может происходить исправление не более чем 5 % экземпляров из масштабируемого набора. Этот процесс помогает избежать одновременного удаления и повторного создания большого количества экземпляров при обнаружении неработоспособных одновременно.
Льготный период
Когда экземпляр проходит через операцию изменения состояния из-за действия PUT, PATCH или POST, выполняемого в масштабируемом наборе, все действия по восстановлению этого экземпляра выполняются только после окончания льготного периода. Период отсрочки — это промежуток времени, в течение которого экземпляру дается возможность вернуться в работоспособное состояние. Льготный период начинается после завершения изменения состояния, что помогает избежать преждевременных или случайных операций восстановления. Льготный период учитывается для любого созданного экземпляра в масштабируемом наборе, включая созданный в результате операции восстановления. Период отсрочки задается в минутах в формате ISO 8601. Его можно установить с помощью свойства automaticRepairsPolicy.gracePeriod. Льготный период может варьироваться от 10 минут до 90 минут и имеет значение по умолчанию 10 минут.
Приостановка исправлений
Масштабируемые наборы виртуальных машин предоставить возможность временно приостановить автоматическое восстановление экземпляров при необходимости. ServiceState для автоматического восстановления в режиме оркестрации свойств в представлении масштабируемого набора виртуальных машин отображает текущее состояние автоматического восстановления. Если для масштабируемого набора было выбрано автоматическое исправление, параметр serviceState имеет значение Running (Работает). Если автоматическое исправление для масштабируемого набора приостановлено, параметр serviceState имеет значение Suspended (Приостановлено). Если параметр automaticRepairsPolicy определен в масштабируемом наборе, но функция автоматического восстановления не включена, то параметр serviceState имеет значение Not Running.
Если экземпляры, создаваемые для замены неработоспособных экземпляров в масштабируемом наборе, будут оставаться неработоспособными даже после повторных выполнений операций исправления, то в качестве меры безопасности платформа меняет значение параметра serviceState для автоматических исправлений на Suspended (Приостановлено). Возобновить автоматическое исправление можно, установив значение serviceState для автоматических исправлений равным Running (Работает). Подробные указания приведены в разделе просмотр и обновление состояния службы политики автоматического исправления для масштабируемого набора.
Вы также можете настроить правила генерации оповещений Azure для отслеживания изменений serviceState и получать уведомления, если автоматическое восстановление будет приостановлено в масштабируемом наборе. Дополнительные сведения см. в статье "Использование правил генерации оповещений Azure для отслеживания изменений в состоянии службы автоматического восстановления экземпляра".
Защита экземпляров и автоматическое исправление
Если экземпляр в масштабируемом наборе защищен путем применения одной из политик защиты, автоматическое восстановление не выполняется в этом экземпляре. Это поведение применяется как к политикам защиты: защита от масштабирования и защиты от действий масштабируемого набора .
Уведомление о прекращении работы и автоматическое исправление
Если функция уведомления о завершении включена в масштабируемом наборе, то во время операции замены удаление неработоспособного экземпляра следует конфигурации уведомления о завершении. Уведомление о завершении отправляется через службу метаданных Azure — запланированные события, а удаление экземпляра отложено во время настроенного времени ожидания задержки. Однако создание нового экземпляра для замены неработоспособного экземпляра не ожидает завершения времени ожидания задержки.
Включение политики автоматического исправления при создании нового масштабируемого набора
Внимание
Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub
Чтобы включить автоматическую политику исправления при создании нового масштабируемого набора, убедитесь, что выполнены все требования к включению этой функции. Конечная точка приложения должна быть правильным образом настроена для экземпляров масштабируемых наборов, чтобы избежать инициации нежелательного исправления экземпляров, пока производится настройка конечной точки. Для недавно созданных масштабируемых наборов все исправления экземпляров выполняются только после завершения льготного периода. Чтобы включить автоматическое восстановление экземпляра в масштабируемом наборе, используйте объект automaticRepairsPolicy в модели масштабируемого набора виртуальных машин.
Этот шаблон краткого руководства также можно использовать для развертывания масштабируемого набора виртуальных машин. Масштабируемый набор содержит пробу работоспособности подсистемы балансировки нагрузки и автоматическое восстановление экземпляров с поддержкой льготного периода в течение 30 минут.
Выполните следующие действия, чтобы включить политику автоматического исправления при создании нового масштабируемого набора.
- Перейдите к Масштабируемые наборы виртуальных машин.
- Нажмите кнопку + Добавить, чтобы создать новый масштабируемый набор.
- Перейдите на вкладку Работоспособность.
- Откройте раздел Работоспособность.
- Включите параметр Мониторинг работоспособности приложений.
- Откройте раздел Политика автоматического восстановления.
- Установите параметр Автоматическое восстановление в значение Вкл.
- В льготный период (мин)укажите льготный период в минутах, допустимые значения — от 10 до 90 минут.
- После создания нового масштабируемого набора нажмите кнопку "Проверить и создать ".
Включение политики автоматического исправления при обновлении существующего масштабируемого набора
Перед включением автоматической политики исправления в существующем масштабируемом наборе убедитесь, что выполняются все требования к включению этой функции. Конечная точка приложения должна быть правильным образом настроена для экземпляров масштабируемых наборов, чтобы избежать инициации нежелательного исправления экземпляров, пока производится настройка конечной точки. Чтобы включить автоматическое восстановление экземпляра в масштабируемом наборе, используйте объект automaticRepairsPolicy в модели масштабируемого набора виртуальных машин.
После обновления модели существующего масштабируемого набора убедитесь, что ко всем экземплярам в наборе применена новейшая версия модели. См. указания в статье Как обновить виртуальные машины в соответствии с последней моделью масштабируемого набора.
Политику автоматического исправления у существующего масштабируемого набора можно изменить на портале Microsoft Azure.
Примечание.
Включите расширение работоспособности приложения или пробы работоспособности Load Balancer на Масштабируемые наборы виртуальных машин перед началом следующих действий.
- Перейдите в существующий масштабируемый набор виртуальных машин.0
- В разделе Параметры в меню слева выберите Работоспособность и восстановление.
- Включите параметр Мониторинг работоспособности приложений.
Если вы отслеживаете масштабируемый набор с помощью расширения "Работоспособность приложений":
Выберите расширение "Работоспособности приложений" в раскрывающемся списке монитора работоспособности приложений.
В раскрывающемся списке "Протокол" выберите сетевой протокол, используемый приложением для отчета о работоспособности. Выберите соответствующий протокол на основе требований приложения. Параметры протокола: HTTP, HTTPS или TCP.
В поле конфигурации номера порта введите сетевой порт, используемый для мониторинга работоспособности приложений.
Для пути укажите путь конечной точки приложения (например, "/"), используемый для отчета о работоспособности приложения.
Примечание.
Расширение "Работоспособности приложений" будет использовать этот путь внутри каждой виртуальной машины в масштабируемом наборе, чтобы получить состояние работоспособности приложения для каждого экземпляра. Если вы используете двоичные состояния работоспособности, а конечная точка отвечает с состоянием 200 (ОК), экземпляр помечается как "Работоспособный". Во всех остальных случаях (в том числе при недоступности конечной точки) экземпляр помечается как "Неработоспособный". Дополнительные варианты состояния работоспособности см. в разделе "Богатые состояния здоровья".
Если вы отслеживаете масштабируемый набор с помощью проб работоспособности SLB:
- Выберите пробу подсистемы балансировки нагрузки из раскрывающегося списка монитора работоспособности приложений. Для пробы работоспособности Load Balancer выберите существующую пробу работоспособности или создайте новую пробу работоспособности для мониторинга.
Чтобы включить автоматическое восстановление, выполните приведенные действия.
- Откройте раздел Политика автоматического восстановления.
- Установите параметр Автоматическое восстановление в значение Вкл.
- В льготный период (мин)укажите льготный период в минутах. Допустимые значения : от 10 до 90 минут.
- По завершении выберите Сохранить.
Настройка действия восстановления для политики автоматического восстановления
Параметр в repairAction
разделе automaticRepairsPolicy
позволяет указать требуемое действие восстановления, выполняемое в ответ на неработоспособный экземпляр. Если вы обновляете действие восстановления в существующей политике автоматического восстановления, необходимо сначала отключить автоматическое восстановление в масштабируемом наборе и повторно включить с обновленным действием восстановления. Этот процесс показан в приведенных ниже примерах.
В этом примере показано, как обновить действие восстановления в масштабируемом наборе с помощью существующей политики автоматического восстановления. Используйте API версии 2021-11-01 или более поздней.
Отключение существующей политики автоматического восстановления в масштабируемом наборе
PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
"properties": {
"automaticRepairsPolicy": {
"enabled": "false"
}
}
}
Повторно включите политику автоматического восстановления с помощью требуемого действия восстановления
PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
"properties": {
"automaticRepairsPolicy": {
"enabled": "true",
"gracePeriod": "PT40M",
"repairAction": "Reimage"
}
}
}
Просмотр и обновление состояния службы политики автоматического исправления экземпляров
Используйте представление экземпляров с API версии 2019-12-01 или более поздней для масштабируемого набора виртуальных машин, чтобы просмотреть serviceState для автоматического восстановления в службе оркестрации свойств.
GET '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2019-12-01'
{
"orchestrationServices": [
{
"serviceName": "AutomaticRepairs",
"serviceState": "Running"
}
]
}
Используйте состояние службы оркестрации для приостановки или возобновления службы serviceState для автоматического восстановления.
POST '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2023-07-01'
{
"serviceName": "AutomaticRepairs",
"action": "Suspend"
}
Устранение неполадок
Не удается включить политику автоматического исправления
Если вы получите ошибку BadRequest с сообщением "Не удалось найти член "automaticRepairsPolicy" для объекта типа "properties", а затем проверьте версию API, используемую для масштабируемого набора виртуальных машин. Для этой функции требуется API версии 2018-10-01 или более поздней.
Исправление экземпляра не происходит даже при включенной политике
Возможно, для экземпляра идет отсчет периода отсрочки. Этот период — это время ожидания после любого изменения состояния экземпляра перед выполнением восстановления, что помогает избежать преждевременного или случайного восстановления. Действие исправления должно начаться, как только закончится отсчет периода отсрочки для экземпляра.
Просмотр состояния работоспособности приложения для экземпляров масштабируемых наборов
Для просмотра состояния работоспособности приложения можно использовать API представления экземпляров для экземпляров в масштабируемом наборе виртуальных машин. При использовании Azure PowerShell можно применить командлет Get-AzVmssVM с флагом -InstanceView. Состояние работоспособности приложения указывается в свойстве vmHealth.
Также состояние работоспособности можно просматривать на портале Microsoft Azure. Перейдите к существующему масштабируемому набору, выберите Экземпляры в меню слева и просмотрите в столбце Состояние работоспособности состояние работоспособности для каждого из экземпляров масштабируемого набора.
Следующие шаги
Узнайте, как настроить расширение "Работоспособность приложения" или пробы работоспособности балансировщика нагрузки в масштабируемых наборах.