Автоматическое обновление образа ОС в масштабируемом наборе виртуальных машин Azure

Примечание.

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

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

Автоматическое обновление ОС имеет следующие характеристики:

  • После настройки последний образ ОС, опубликованный издателем, автоматически применяется к масштабируемому набору без вмешательства пользователя.
  • Пакеты экземпляров последовательно обновляются каждый раз, когда издатель публикует новый образ.
  • Интегрируется с пробами работоспособности приложения и расширения работоспособности приложения.
  • Работает для виртуальных машин всех размеров, а также для образов Windows и Linux, включая пользовательские образы, через коллекцию вычислений Azure.
  • Автоматические обновления можно в любое время отключить (обновление ОС также можно инициировать вручную).
  • Диск ОС виртуальной машины заменяется новым диском ОС с последней версией образа. Запускаются настраиваемые расширения и сценарии пользовательских данных, а сохраненные диски данных сохраняются.
  • Поддерживается расширение виртуализации.
  • Можно включить в масштабируемом наборе любого размера.

Примечание.

Перед включением автоматического обновления образа ОС ознакомьтесь с разделом требований этой документации.

Как работает автоматическое обновление образа ОС?

Обновление выполняется путем замены диска операционной системы виртуальной машины на диск, созданный с использованием последней версии образа. Настроенные расширения и скрипты пользовательских данных выполняются на диске ОС, а диски данных сохраняются. Чтобы свести к минимуму время простоя приложений, обновления выполняются для пакетов и в любое время обновляется не более чем 20 % масштабируемого набора.

Вы можете интегрировать пробу работоспособности приложения Azure Load Balancer или расширение работоспособности приложения, чтобы отслеживать работоспособность приложения после обновления. Рекомендуем добавить пакет пульса приложения для проверки успешности обновления.

Установка обновлений по приоритету доступности

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

Между регионами:

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

В пределах региона:

  • Виртуальные машины в разных зонах доступности не обновляются одновременно.

В наборе:

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

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

Обновление виртуальных машин в масштабируемом наборе

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

  1. Перед началом процесса обновления оркестратор убедится, что не более чем 20 % экземпляров во всем масштабируемом наборе являются неработоспособными (по любой причине).
  2. Этот оркестратор обновления определяет пакет экземпляров виртуальных машин для обновления. При этом любой пакет должен содержать не более 20% от общего количества экземпляров при условии минимального размера пакета одной виртуальной машины. Требование к минимальному размеру масштабируемого набора отсутствует, и масштабируемые наборы с 5 экземплярами или менее будут иметь 1 виртуальную машину на пакет обновлений (минимальный размер пакета).
  3. Диск ОС каждой виртуальной машины в выбранном пакете обновлений заменяется новым диском ОС, созданным из последнего образа. Все указанные расширения и конфигурации в модели масштабируемого набора применяются к обновленному экземпляру.
  4. Если масштабируемые наборы настроены с помощью проверок работоспособности приложения или расширения работоспособности приложения, обновление останавливается на 5 минут, чтобы экземпляр стал работоспособным, прежде чем перейти к обновлению нового пакета. Если экземпляр не восстанавливает работоспособность в течение 5 минут после обновления, по умолчанию восстанавливается предыдущий диск ОС для этого экземпляра.
  5. Оркестратор обновления также отслеживает процент экземпляров, которые становятся неработоспособными после обновления. Обновление будет прервано, если более чем 20 % обновленных экземпляров утрачивают работоспособность во время обновления.
  6. Описанный выше процесс продолжается, пока все экземпляры в масштабируемом наборе не будут обновлены.

Оркестратор обновления ОС масштабируемого набора проверяет общее состояние работоспособности масштабируемого набора перед обновлением каждого пакета. При обновлении пакета может быть выполнено другое параллельное плановое или внеплановое обслуживание, которое может повлиять на работоспособность экземпляров масштабируемого набора. В таких случаях более 20 % экземпляров масштабируемого набора становятся неработоспособными, обновление масштабируемого набора останавливается в конце текущего пакета.

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

Примечание.

Автоматическое обновление ОС не обновляет номер SKU эталонного образа в масштабируемом наборе. Чтобы изменить номер Sku (например, Ubuntu 18.04-LTS на 20.04-LTS), необходимо обновить модель масштабируемого набора непосредственно с помощью требуемого SKU образа. Издателя и предложение образа нельзя изменить для существующего масштабируемого набора.

Обновление образа ОС и повторное представление

Обновление образа ОС и повторное создание образов — это методы, используемые для обновления виртуальных машин в масштабируемом наборе, но они служат различным целям и имеют различные последствия.

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

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

Основные различия:

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

Когда следует использовать каждый метод:

  • Используйте обновление образа ОС, если требуется обновить образ ОС для всего масштабируемого набора, сохраняя высокий уровень доступности.
  • Используйте reimage, если необходимо устранить неполадки или сбросить определенный экземпляр виртуальной машины в масштабируемом наборе виртуальных машин.

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

Поддерживаемые образы ОС

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

В настоящее время поддерживаются следующие номера SKU (и периодически будут добавляться дополнительные):

Publisher Предложение ОС Sku
Canonical UbuntuServer 18.04-LTS
Canonical UbuntuServer 18_04-LTS-Gen2
Canonical 0001-com-ubuntu-server-focal 20_04-LTS
Canonical 0001-com-ubuntu-server-focal 20_04-LTS-Gen2
Canonical 0001-com-ubuntu-server-jammy 22_04-LTS
Canonical 0001-com-ubuntu-server-jammy 22_04-LTS-Gen2
MicrosoftCblMariner Cbl-Mariner cbl-mariner-1
MicrosoftCblMariner Cbl-Mariner 1-Gen2
MicrosoftCblMariner Cbl-Mariner cbl-mariner-2
MicrosoftCblMariner Cbl-Mariner cbl-mariner-2-Gen2
MicrosoftSqlServer Sql2017-ws2019 корпоративный
MicrosoftWindowsServer WindowsServer 2012-R2-Datacenter
MicrosoftWindowsServer WindowsServer 2016-Datacenter
MicrosoftWindowsServer WindowsServer 2016-Datacenter-gensecond
MicrosoftWindowsServer WindowsServer 2016-Datacenter-gs
MicrosoftWindowsServer WindowsServer 2016-Datacenter-smalldisk
MicrosoftWindowsServer WindowsServer 2016-Datacenter-with-Containers
MicrosoftWindowsServer WindowsServer 2016-Datacenter-with-containers-gs
MicrosoftWindowsServer WindowsServer 2019-Datacenter
MicrosoftWindowsServer WindowsServer 2019-Datacenter-Core
MicrosoftWindowsServer WindowsServer 2019-Datacenter-Core-with-Containers
MicrosoftWindowsServer WindowsServer 2019-Datacenter-gensecond
MicrosoftWindowsServer WindowsServer 2019-Datacenter-gs
MicrosoftWindowsServer WindowsServer 2019-Datacenter-smalldisk
MicrosoftWindowsServer WindowsServer 2019-Datacenter-with-Containers
MicrosoftWindowsServer WindowsServer 2019-Datacenter-with-Containers-gs
MicrosoftWindowsServer WindowsServer 2022-Datacenter
MicrosoftWindowsServer WindowsServer 2022-Datacenter-smalldisk
MicrosoftWindowsServer WindowsServer 2022-Datacenter-smalldisk-g2
MicrosoftWindowsServer WindowsServer 2022-Datacenter-core
MicrosoftWindowsServer WindowsServer 2022-Datacenter-core-smalldisk
MicrosoftWindowsServer WindowsServer 2022-Datacenter-g2
MicrosoftWindowsServer WindowsServer Datacenter-core-20h2-with-containers-smalldisk-gs
MicrosoftWindowsServer WindowsServer 2022-Datacenter-azure-edition
MicrosoftWindowsServer WindowsServer 2022-Datacenter-azure-edition-smalldisk

Требования к настройке автоматического обновления образа ОС

  • Для свойства version образа платформы необходимо установить значение latest.
  • Необходимо использовать пробы работоспособности приложений или расширение работоспособности приложения для масштабируемых наборов, не связанных с Service Fabric. Дополнительные сведения см. в разделе Требования к Service Fabric.
  • Используйте API Вычислений версии 2018-10-01 или более поздней.
  • Убедитесь, что внешние ресурсы, указанные в модели масштабируемого набора, доступны и обновлены. Примеры включают универсальный код ресурса (URI) SAS для начальной загрузки полезных данных в свойствах расширения виртуальной машины, полезные данные в учетной записи хранения, ссылки на секреты в модели и многое другое.
  • Для масштабируемых наборов с помощью виртуальных машин Windows, начиная с API вычислений версии 2019-03-01, свойство virtualMachineProfile.osProfile.windowsConfiguration.enableAutomatic Обновления должно иметь значение false в определении модели масштабируемого набора. Свойство enableAutomaticUpdates позволяет выполнять исправления в виртуальной машине, когда Центр обновления Windows применяет исправления операционной системы без замены диска ОС. При автоматическом обновлении образа ОС в масштабируемом наборе, который можно выполнить, установив для параметра automaticOSUpgradePolicy.enableAutomaticOSUpgradeзначение true, дополнительный процесс исправления через Обновл. Windows не требуется.

Примечание.

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

Требования к Service Fabric

При использовании Service Fabric убедитесь, что выполняются следующие условия.

  • Уровень устойчивости Service Fabric должен быть Silver или Gold. Если устойчивость Service Fabric является бронзовой, только типы узлов без отслеживания состояния поддерживают автоматическое обновление образа ОС).
  • Расширение Service Fabric в определении модели масштабируемого набора должно иметь версию TypeHandlerVersion 1.1 или более позднюю.
  • В определении модели масштабируемого набора должен быть задан одинаковый уровень устойчивости для кластера Service Fabric и расширения Service Fabric.
  • В случае устойчивости Silver или Gold дополнительная проба работоспособности или использование расширения работоспособности приложений не требуется. Устойчивость Bronze с узлами только без отслеживания состояния требует дополнительной пробы работоспособности.
  • Свойство virtualMachineProfile.osProfile.windowsConfiguration.enableAutomaticUpdates должно иметь значение false в определении модели масштабируемого набора. Свойство enableAutomaticUpdates включает установку исправлений в виртуальной машине с помощью Центра обновления Windows и не поддерживается в масштабируемых наборах Service Fabric. Вместо этого следует использовать свойство automaticOSUpgradePolicy.enableAutomaticOSUpgrade .

Убедитесь, что отсутствуют несоответствия параметров устойчивости в кластере Service Fabric и расширении Service Fabric, так как несоответствие приведет к ошибкам обновления. Уровни устойчивости можно изменять в соответствии с рекомендациями, приведенными на этой странице.

Автоматическое обновление образа ОС для пользовательских образов

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

Дополнительные требования для пользовательских образов

  • Процесс установки и настройки автоматического обновления образа ОС одинаков для всех масштабируемых наборов, как описано в разделе "Конфигурация" этой страницы.
  • Экземпляры масштабируемых наборов, настроенные для автоматического обновления образа ОС, будут обновляться до последней версии образа из коллекции вычислений Azure, когда новая версия образа публикуется и реплицируется в регион этого масштабируемого набора. Если новый образ не реплицируется в регион, где развернут этот масштабируемый набор, то экземпляры масштабируемого набора не будут обновлены до последней версии. Региональная репликация образов позволяет управлять выпуском нового образа для масштабируемых наборов.
  • Не следует исключать новую версию образа из последней версии для этого образа коллекции. Версии образов, исключенные из последней версии образа коллекции, не развертываются в масштабируемом наборе с помощью автоматического обновления образа ОС.

Примечание.

Для запуска первого развертывания обновления образа может потребоваться до 3 часов, так как масштабируемый набор сначала настроен для автоматического обновления ОС из-за определенных факторов, таких как Windows обслуживания или другие ограничения. Клиенты на последнем образе могут не получить обновление до тех пор, пока не будет доступен новый образ.

Настройка автоматического обновления образа ОС

Чтобы настроить автоматическое обновление образа ОС, убедитесь, что свойство automaticOSUpgradePolicy.enableAutomaticOSUpgrade установлено как true в определении модели масштабируемого набора.

Примечание.

Режим политики обновления и Политика автоматического обновления ОС — это отдельные параметры, которые управляют разными аспектами масштабируемого набора. При наличии изменений в шаблоне масштабируемого набора политика обновления mode определит, что произойдет с существующими экземплярами в масштабируемом наборе. Однако политика автоматического обновления ОС enableAutomaticOSUpgrade зависит от образа операционной системы и отслеживает изменения, внесенные издателем образа, и определяет, что происходит при обновлении образа.

Примечание.

Если enableAutomaticOSUpgrade задано значение true, enableAutomaticUpdates автоматически устанавливается значение false и не может быть задано значение true.

REST API

В следующем примере описано, как настроить автоматические обновления ОС в модели масштабируемого набора.

PUT or PATCH on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet?api-version=2021-03-01`
{
  "properties": {
    "upgradePolicy": {
      "automaticOSUpgradePolicy": {
        "enableAutomaticOSUpgrade":  true
      }
    }
  }
}

Azure PowerShell

Используйте командлет New-AzVmss, чтобы настроить автоматическое обновление образа ОС для масштабируемого набора во время подготовки. В следующем примере настраиваются автоматические обновления масштабируемого набора myScaleSet в группе ресурсов myResourceGroup.

New-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -AutomaticOSUpgrade $true

Используйте командлет Update-AzVmss, чтобы настроить автоматическое обновление образа ОС для существующего масштабируемого набора. В следующем примере настраиваются автоматические обновления масштабируемого набора myScaleSet в группе ресурсов myResourceGroup.

Update-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -AutomaticOSUpgrade $true

Azure CLI 2.0

Используйте az vmss create , чтобы настроить автоматическое обновление образа ОС для масштабируемого набора во время подготовки. Использование Azure CLI 2.0.47 или более поздней версии В следующем примере настраиваются автоматические обновления масштабируемого набора myScaleSet в группе ресурсов myResourceGroup.

az vmss create --name myScaleSet --resource-group myResourceGroup --set UpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade=true

Используйте az vmss update , чтобы настроить автоматическое обновление образа ОС для существующего масштабируемого набора. Использование Azure CLI 2.0.47 или более поздней версии В следующем примере настраиваются автоматические обновления масштабируемого набора myScaleSet в группе ресурсов myResourceGroup.

az vmss update --name myScaleSet --resource-group myResourceGroup --set UpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade=true

Примечание.

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

Шаблоны ARM

В следующем примере описывается настройка автоматического обновления ОС в модели масштабируемого набора с помощью шаблонов Azure Resource Manager (шаблоны ARM):

"properties": {
   "upgradePolicy": {
     "mode": "Automatic",
     "RollingUpgradePolicy": {
         "BatchInstancePercent": 20,
         "MaxUnhealthyInstancePercent": 25,
         "MaxUnhealthyUpgradedInstancePercent": 25,
         "PauseTimeBetweenBatches": "PT0S"
     },
    "automaticOSUpgradePolicy": {
      "enableAutomaticOSUpgrade": true,
        "useRollingUpgradePolicy": true,
        "disableAutomaticRollback": false
    }
  },
  },
"imagePublisher": {
   "type": "string",
   "defaultValue": "MicrosoftWindowsServer"
 },
 "imageOffer": {
   "type": "string",
   "defaultValue": "WindowsServer"
 },
 "imageSku": {
   "type": "string",
   "defaultValue": "2022-datacenter"
 },
 "imageOSVersion": {
   "type": "string",
   "defaultValue": "latest"
 }

Bicep

В следующем примере описывается настройка автоматического обновления ОС в модели масштабируемого набора с помощью Bicep:

properties: {
    overprovision: overProvision
    upgradePolicy: {
      mode: 'Automatic'
      automaticOSUpgradePolicy: {
        enableAutomaticOSUpgrade: true
      }
    }
}

Использование проверок работоспособности приложений

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

Для масштабируемого набора можно дополнительно настроить проверки работоспособности приложений, с помощью которых платформа сможет получать точную информацию о текущем состоянии приложения. Проверки работоспособности приложения — это проверки пользовательского балансировщика нагрузки, которые используются в качестве сообщения о работоспособности. Приложение, работающее на экземпляре виртуальной машины из масштабируемого набора, может отвечать на внешние HTTP- или TCP-запросы, указывающие на его работоспособность. Дополнительные сведения о работе проверок пользовательского балансировщика нагрузки см. в статье Проверки балансировщика нагрузки. Пробы работоспособности приложений не поддерживаются для масштабируемых наборов Service Fabric. Для не связанных с Service Fabric масштабируемых наборов требуются или проверки работоспособности приложения Load Balancer, или расширение работоспособности приложения.

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

Примечание.

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

Настройка пользовательской проверки балансировщика нагрузки в качестве проверки работоспособности приложения в масштабируемом наборе

Мы рекомендуем явно создать проверку балансировщика нагрузки на работоспособность масштабируемого набора. Вы можете использовать одну конечную точку для имеющейся пробы HTTP или TCP, но для пробы работоспособности может потребоваться подход, отличный от традиционного для пробы подсистемы балансировки нагрузки. Например, при традиционной проверке подсистемы балансировки нагрузки может вернуться сообщение о нерабочем состоянии, если нагрузка на экземпляр слишком высока. Такая проверка может оказаться непригодной для определения работоспособности экземпляра во время автоматического обновления ОС. Настройте для проверки высокую частоту (менее двух минут).

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

"networkProfile": {
  "healthProbe" : {
    "id": "[concat(variables('lbId'), '/probes/', variables('sshProbeName'))]"
  },
  "networkInterfaceConfigurations":
  ...
}

Примечание.

При использовании автоматического обновления ОС с помощью Service Fabric домен обновления развертывает новый образ ОС, чтобы обеспечить высокий уровень доступности для служб, работающих в Service Fabric. Для использования автоматических обновлений ОС в Service Fabric тип узла вашего кластера должен быть настроен для использования уровня устойчивости Silver или выше. Для уровня устойчивости Bronze автоматическое обновление образа ОС поддерживается только для типов узлов без отслеживания состояния. Дополнительные сведения о характеристиках устойчивости кластера Service Fabric см. в этой документации.

Поддержание актуальности учетных данных

Если ваш масштабируемый набор использует какие-либо учетные данные для доступа к внешним ресурсам, например, если в расширении VM настроено использование маркера SAS для учетной записи хранения, убедитесь, что учетные данные обновлены. Если срок действия всех учетных данных, в том числе сертификатов и маркеров, истек, обновление завершится сбоем, и первый пакет виртуальных машин останется в состоянии сбоя.

В случае сбоя аутентификации ресурса рекомендуем выполнить следующие шаги по восстановлению виртуальных машин и повторному включению автоматического обновления ОС.

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

Использование расширения "Работоспособность приложения"

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

Так как расширение сообщает о состоянии работоспособности из виртуальной машины, это расширение можно применять в ситуациях, когда внешние пробы, например, пробы работоспособности приложений (использующие пользовательские пробы Azure Load Balancer), не могут использоваться.

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

Примечание.

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

Получение журнала автоматического обновления образа ОС

Вы можете проверить журнал последнего обновления ОС масштабируемого набора с помощью Azure PowerShell, Azure CLI 2.0 или интерфейсов REST API. Можно просмотреть журнал для последних пяти попыток обновлений операционной системы в течение последних двух месяцев.

REST API

В следующем примере используется REST API для проверки состояния масштабируемого набора myScaleSet в группе ресурсов myResourceGroup.

GET on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/osUpgradeHistory?api-version=2021-03-01`

Вызов GET возвращает подобные свойства:

{
	"value": [
		{
			"properties": {
        "runningStatus": {
          "code": "RollingForward",
          "startTime": "2018-07-24T17:46:06.1248429+00:00",
          "completedTime": "2018-04-21T12:29:25.0511245+00:00"
        },
        "progress": {
          "successfulInstanceCount": 16,
          "failedInstanceCount": 0,
          "inProgressInstanceCount": 4,
          "pendingInstanceCount": 0
        },
        "startedBy": "Platform",
        "targetImageReference": {
          "publisher": "MicrosoftWindowsServer",
          "offer": "WindowsServer",
          "sku": "2016-Datacenter",
          "version": "2016.127.20180613"
        },
        "rollbackInfo": {
          "successfullyRolledbackInstanceCount": 0,
          "failedRolledbackInstanceCount": 0
        }
      },
      "type": "Microsoft.Compute/virtualMachineScaleSets/rollingUpgrades",
      "location": "westeurope"
    }
  ]
}

Azure PowerShell

Используйте командлет Get-AzVmss, чтобы проверить журнал обновлений ОС для масштабируемого набора. В следующем примере показано, как проверить состояние обновления ОС масштабируемого набора myScaleSet в группе ресурсов myResourceGroup:

Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -OSUpgradeHistory

Azure CLI 2.0

Используйте командлет az vmss get-os-upgrade-history, чтобы проверить журнал обновления ОС масштабируемого набора. Использование Azure CLI 2.0.47 или более поздней версии В следующем примере показано, как проверить состояние обновления ОС масштабируемого набора myScaleSet в группе ресурсов myResourceGroup:

az vmss get-os-upgrade-history --resource-group myResourceGroup --name myScaleSet

Как получить последнюю версию образа платформы ОС?

Вы можете получить доступные версии образов для автоматического обновления ОС (для поддерживаемых номеров SKU), используя приведенные ниже примеры.

REST API

GET on `/subscriptions/subscription_id/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions?api-version=2021-03-01`

Azure PowerShell

Get-AzVmImage -Location "westus" -PublisherName "Canonical" -offer "0001-com-ubuntu-server-jammy" -sku "22_04-lts"

Azure CLI 2.0

az vm image list --location "westus" --publisher "Canonical" --offer "0001-com-ubuntu-server-jammy" --sku "22_04-lts" --all

Активация обновления образа ОС вручную

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

В особых случаях, когда вы не хотите ждать, пока оркестратор применит последнюю версию образа, можно активировать обновление образа ОС вручную, используя приведенные ниже примеры.

Примечание.

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

REST API

Вызов API обновления начальной ОС используется для запуска последовательного обновления для перемещения всех экземпляров масштабируемого набора виртуальных машин в последнюю доступную версию ОС образа. Экземпляры, которые уже используют последнюю доступную версию ОС, не затрагиваются. В следующем примере показано, как запустить последовательное обновление ОС масштабируемого набора с именем myScaleSet в группе ресурсов myResourceGroup:

POST on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/osRollingUpgrade?api-version=2021-03-01`

Azure PowerShell

Чтобы проверить журнал обновлений ОС для масштабируемого набора, используйте командлет Start-AzVmssRollingOSUpgrade. В следующем примере показано, как запустить последовательное обновление ОС масштабируемого набора с именем myScaleSet в группе ресурсов myResourceGroup:

Start-AzVmssRollingOSUpgrade -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Azure CLI 2.0

Чтобы проверить журнал обновлений ОС для масштабируемого набора, используйте команду az vmss rolling-upgrade start. Использование Azure CLI 2.0.47 или более поздней версии В следующем примере показано, как запустить последовательное обновление ОС масштабируемого набора с именем myScaleSet в группе ресурсов myResourceGroup:

az vmss rolling-upgrade start --resource-group "myResourceGroup" --name "myScaleSet" --subscription "subscriptionId"

Изучение и устранение ошибок автоматического обновления

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

RollingUpgradeInProgressWithFailedUpgradedVMs

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

MaxUnhealthyUpgradedInstancePercentExceededInRollingUpgrade

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

MaxUnhealthyInstancePercentExceededInRollingUpgrade

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

MaxUnhealthyInstancePercentExceededBeforeRollingUpgrade

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

InternalExecutionError

  • Ошибка активируется, когда необработанная, неформатированная или непредвиденная возникает во время выполнения.
  • Подробное сообщение об ошибке отображает причину ошибки.

RollingUpgradeTimeoutError

  • Ошибка активируется при истечении времени ожидания процесса последовательного обновления.
  • Подробное сообщение об ошибке отображает время ожидания системы после попытки обновления.

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