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


Автоматическое обновление расширений для виртуальных машин и масштабируемых наборов в Azure

Автоматическое обновление расширений доступно для Azure Виртуальные машины и Azure Масштабируемые наборы виртуальных машин. Если автоматическое обновление расширений включено на виртуальной машине или масштабируемом наборе, Azure автоматически отслеживает новые версии расширений, оценивает качество и безопасность новой версии, утверждает версию для развертывания, а затем автоматически обновляет все виртуальные машины с помощью расширения. Azure обновляет все виртуальные машины постепенно после методов безопасного развертывания (SDP), чтобы предотвратить сбой версии и обеспечить высокий уровень доступности для приложений. Это постепенное развертывание может занять 1–2 месяца, чтобы завершиться в зависимости от времени, необходимого для оценки, серьезности обновления и масштаба виртуальных машин, необходимых для обновления.

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

  • Azure VMs, virtual machine scale sets and Arc VMs are supported.
  • Обновления применяются в модели развертывания с первого уровня доступности (методы безопасного развертывания)[/azure/well-architected/operational-excellence/safe-deployments] (SDP).
  • Для масштабируемого набора виртуальных машин по умолчанию не более 20% виртуальных машин масштабируемого набора обновляются в одном пакете. Этот размер пакета можно изменить, определив политику последовательного обновления VMSS.
  • Для виртуальных машин Azure и виртуальных машин Arc не более 20% виртуальных машин обновляются в одном пакете. Этот размер пакета нельзя изменить.
  • Все неудачные обновления автоматически откатываются, чтобы попытаться вернуть виртуальную машину в работоспособное состояние.
  • Все обновления не перезагружаются. Поэтому после обновления виртуальная машина не нуждается в перезагрузке.
  • Поддерживаются все размеры виртуальных машин.
  • Расширения Windows и Linux совместимы.
  • Автоматические обновления включены по умолчанию начальной версии 2025-04-01API.
  • Каждое поддерживаемого расширения регистрируется по отдельности. Вы можете выбрать, какие расширения следует обновлять автоматически.
  • Поддерживаются все общедоступные, суверенные и воздушные облачные регионы.

Принцип работы автоматического обновления расширений

Процесс обновления расширения удаляет существующее расширение на виртуальной машине и переустановит расширение с новой версией.

  1. Когда издатель расширения публикует новую версию того же расширения, Azure обнаруживает новую версию и запускает процесс оценки качества. Этот процесс проверяет версию для обеспечения безопасности, качества и безопасного обновления без сбоев. Версия утверждена для развертывания после прохождения оценки.
  2. Azure начинается с одного региона или зоны (развертывание начинается с канарского региона), и после полного обновления он переходит к следующему региону или зоне.
  3. В пределах региона или зоны Azure группирует виртуальные машины в небольшие пакеты (на основе политик по умолчанию или последовательному обновлению) и обновляет один пакет за раз. Azure переходит к следующему пакету после успешного обновления предыдущего пакета.
  4. Azure Monitors для работоспособности виртуальных машин и приложений (с помощью расширения работоспособности приложений) после обновления для обнаружения сбоев. Если виртуальная машина не работает в течение пяти минут после обновления, обновление выполняется и установлена предыдущая версия расширения. Обновление автоматически выполняется после некоторого времени без вмешательства клиента.

Availability-first Upgrades

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

Для группы виртуальных машин, проходящих обновление, платформа Azure управляет обновлениями между регионами, в пределах региона и в наборе.

Across regions

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

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

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

Внутри набора

  • Все виртуальные машины в общем наборе доступности или масштабируемом наборе не обновляются одновременно.
  • Виртуальные машины в общей группе доступности обновляются в пределах границ домена обновления. Виртуальные машины в нескольких доменах обновления не обновляются одновременно.
  • Виртуальные машины в общем масштабируемом наборе виртуальных машин группируются в пакетах и обновляются в пределах границ домена обновления. Upgrade policies defined on the scale set are honored during the upgrade. Каждая группа обновляется с помощью стратегии последовательного обновления.

Процесс обновления для масштабируемых наборов виртуальных машин

  • Перед началом процесса обновления оркестратор гарантирует, что не более 20% виртуальных машин во всем масштабируемом наборе неработоспособны (по какой-либо причине).
  • Оркестратор обновления определяет пакет экземпляров виртуальных машин для обновления. Пакет обновления может иметь не более 20 % от общего количества виртуальных машин, при условии минимального размера пакета одной виртуальной машины. Оркестратор рассматривает определение политики обновления и зон доступности во время идентификации пакета.
  • После обновления работоспособности виртуальной машины всегда отслеживается перед переходом к следующему пакету. Для масштабируемых наборов с настроенными пробами работоспособности приложения или расширением "Работоспособности приложений" также отслеживается работоспособности приложений. Обновление ожидает до пяти минут (или определенной конфигурации пробы работоспособности) виртуальной машины перед обновлением следующего пакета. Если виртуальная машина не восстанавливает работоспособность после обновления, то по умолчанию будет переустановлена предыдущая версия расширения на виртуальной машине.
  • Оркестратор обновления также отслеживает процент виртуальных машин, которые становятся неработоспособными после обновления. Обновление останавливается, если более 20% обновленных экземпляров становятся неработоспособными во время процесса обновления.

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

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

Supported extensions

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

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

Ниже приведены популярные расширения, поддерживаемые для автоматического обновления (и многое другое добавляются периодически):

Publisher Type
Microsoft.Azure.Automation.HybridWorker HybridWorkerForLinux
Microsoft.Azure.Automation.HybridWorker HybridWorkerForWindows
Microsoft.Azure.AzureDefenderForSQL AdvancedThreatProtection.Windows
Microsoft.Azure.AzureDefenderForSQL VulnerabilityAssessment.Windows
Microsoft.Azure.AzureDefenderForServers MDE.Linux
Microsoft.Azure.AzureDefenderForServers MDE.Windows
Microsoft.Azure.ChangeTrackingAndInventory ChangeTracking-Linux
Microsoft.Azure.ChangeTrackingAndInventory ChangeTracking-Windows
Microsoft.Azure.Diagnostics LinuxDiagnostic
Microsoft.Azure.Extensions.Edp LinuxHibernateTestExtension
Microsoft.Azure.Extensions.Edp WindowsHibernateTestExtension
Microsoft.Azure.FleetDiagnostics FleetDiagnosticsForWindows
Microsoft.Azure.Geneva GenevaMonitoring
Microsoft.Azure.KeyVault KeyVaultForLinux
Microsoft.Azure.KeyVault KeyVaultForWindows
Microsoft.Azure.Labservices Agent.Linux
Microsoft.Azure.Labservices Agent.Windows
Microsoft.Azure.Monitor AzureMonitorLinuxAgent
Microsoft.Azure.Monitor AzureMonitorWindowsAgent
Microsoft.Azure.Monitoring.DependencyAgent.EDP DependencyAgentLinux
Microsoft.Azure.Monitoring.DependencyAgent.EDP DependencyAgentWindows
Microsoft.Azure.Monitoring.DependencyAgent DependencyAgentLinux
Microsoft.Azure.Monitoring.DependencyAgent DependencyAgentWindows
Microsoft.Azure.NetworkWatcher NetworkWatcherAgentLinux
Microsoft.Azure.NetworkWatcher NetworkWatcherAgentWindows
Microsoft.Azure.Networking.DNS DNSClientCache
Microsoft.Azure.SCOMMI GatewayServer
Microsoft.Azure.SCOMMI WindowsAgent
Microsoft.Azure.Security.AntimalwareSignature AntimalwareConfiguration
Microsoft.Azure.Security.Dsms DSMSForWindows
Microsoft.Azure.Security.LinuxAttestation GuestAttestation
Microsoft.Azure.Security.Monitoring AzureSecurityLinuxAgent
Microsoft.Azure.Security.Monitoring AzureSecurityWindowsAgent
Microsoft.Azure.Security.WindowsAttestation GuestAttestation
Microsoft.Azure.Security.WindowsCodeIntegrity CodeIntegrityAgent
Microsoft.Azure.ServiceFabric ServiceFabricLinuxNode
Microsoft.Azure.Watson WatsonLinuxAgent
Microsoft.Azure.Workloads MonitoringExtensionLinux
Microsoft.Azure.Workloads MonitoringExtensionWindows
Microsoft.CPlat.Core LinuxHibernateExtension
Microsoft.CPlat.Core WindowsHibernateExtension
Microsoft.CPlat.ProxyAgent ProxyAgentLinux
Microsoft.CPlat.ProxyAgent ProxyAgentWindows
Microsoft.EnterpriseCloud.Monitoring MicrosoftMonitoringAgent
Microsoft.EnterpriseCloud.Monitoring OmsAgentForLinux
Microsoft.GuestConfiguration ConfigurationForLinux
Microsoft.GuestConfiguration ConfigurationForWindows
Microsoft.ManagedServices ApplicationHealthLinux
Microsoft.ManagedServices ApplicationHealthWindows
Microsoft.OSTCExtensions DSCForLinux
Microsoft.Sentinel.AzureMonitorAgentExtensions MicrosoftDnsAgent
Microsoft.SqlServer.Management SqlIaaSAgent
Microsoft.SqlServer.Management SqlIaaSAgentLinux

Включение автоматического обновления расширений

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

Использование портала Azure

In the Azure portal, use the Extension pane to enable automatic upgrade of extensions on existing VMs and virtual machine scale sets.

  1. Go to the Virtual Machines or Virtual Machines Scale Sets pane, and select the resource name.

  2. Under Settings, go to the Extensions + applications pane, which shows all extensions installed on the resource. Столбец состояния автоматического обновления показывает, включен ли автоматическое обновление расширения, отключено или не поддерживается.

  3. Select the extension name to open the Extensions details pane.

    Снимок экрана: панель расширений в портал Azure.

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

    Снимок экрана: включение автоматического обновления в портал Azure.

Для виртуальных машин

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

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<vmName>/extensions/<extensionName>?api-version=2019-12-01`
{    
    "name": "extensionName",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "<location>",
    "properties": {
        "autoUpgradeMinorVersion": true,
        "enableAutomaticUpgrade": true, 
        "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
        "type": "DependencyAgentWindows",
        "typeHandlerVersion": "9.5"
        }
}

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

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<vmssName>?api-version=2019-12-01`
{
   "location": "<location>",
   "properties": {
   	    "virtualMachineProfile": {
            "extensionProfile": {
       	        "extensions": [
            	{
                "name": "<extensionName>",
            	  "properties": {
             		    "autoUpgradeMinorVersion": true,
             		    "enableAutomaticUpgrade": true,
              	    "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
              	    "type": "DependencyAgentWindows",
              	    "typeHandlerVersion": "9.5"
            		}
          	    }
        	    ]
    	    }
    	}
    }
}

Note

Эти операции задают enableAutomaticUpgrade свойство true для ресурса масштабируемого набора виртуальных машин, но не на базовых виртуальных машинах.

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

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


Обновление нескольких расширений

У виртуальной машины или масштабируемого набора виртуальных машин может быть несколько расширений с включенным автоматическим обновлением расширений. Те же виртуальные машины или масштабируемый набор также могут иметь другие расширения без включения автоматического обновления расширений.

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

You can also apply Automatic Extension Upgrade when a VM or virtual machine scale set has multiple extensions configured with extension sequencing. Последовательность расширений выполняется при первом развертывании виртуальной машины. Любые будущие обновления расширений для расширения применяются независимо.

Разница между EnableAutomaticUpgrade и AutoUpgradeMinorVersion

  • AutoUpgradeMinorVersion:

    • Это свойство используется во время создания виртуальной машины и при обновлении виртуальной машины с новой конфигурацией.
    • Если задано значение true, оно гарантирует, что на виртуальной машине автоматически устанавливается последняя дополнительная версия расширения.
    • Она переопределяет TypeHandlerVersion последнюю стабильную дополнительную версию.
    • При обновлении конфигурации виртуальной машины, если доступна новая дополнительная версия, она считается изменением конфигурации. Расширение переустановлено с последней дополнительной версией.
    • Таким образом, недавно созданные виртуальные машины соответствуют последней стабильной версии дополнительного расширения.
    • Если вы хотите вручную задать расширение определенной версии, задайте для этого свойства значение false.
  • EnableAutomaticUpgrade:

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

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

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

Next step