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


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

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

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

  • Поддерживаются виртуальные машины Azure и масштабируемые наборы виртуальных машин.
  • Обновления применяются в модели развертывания на основе доступности.
  • Для масштабируемого набора виртуальных машин не более 20 % обновлений масштабируемого набора виртуальных машин находятся в одном пакете. Минимальный размер пакета — одна виртуальная машина.
  • Все размеры виртуальных машин и расширения Windows и Linux совместимы.
  • Автоматическое обновление является необязательным в любое время.
  • Масштабируемые наборы виртуальных машин любого размера включены.
  • Каждое поддерживаемого расширения регистрируется по отдельности. Вы можете выбрать, какие расширения следует обновлять автоматически.
  • Поддерживаются все регионы общедоступного облака.

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

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

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

Обновления для доступности

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

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

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

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

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

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

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

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

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

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

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

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

Поддерживаемые расширения

Функция автоматического обновления расширений поддерживает следующие расширения (периодически добавляются другие расширения).


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

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

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

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

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

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

  3. Выберите имя расширения, чтобы открыть область сведений о расширениях .

    Снимок экрана: панель расширений в портал 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"
            		}
          	    }
        	    ]
    	    }
    	}
    }
}

Примечание.

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

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

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


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

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

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

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

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

  • AutoUpgradeMinorVersion:

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

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

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

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

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