Перенос развертываний и ресурсов в Масштабируемые наборы виртуальных машин в гибкой оркестрации

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

Обновление шаблонов и скриптов развертываний группы доступности

Сначала необходимо создать масштабируемый набор виртуальных машин без профиля автоматического масштабирования с помощью Azure CLI, Azure PowerShell или шаблона ARM. портал Azure позволяет создавать масштабируемый набор виртуальных машин только с профилем автомасштабирования. Если вам не нужен профиль автомасштабирования и вы хотите создать масштабируемый набор с помощью портал Azure, можно задать начальную емкость равным 0.

Необходимо указать число доменов сбоя для масштабируемого набора виртуальных машин. Для региональных (незональных) развертываний Масштабируемые наборы виртуальных машин предлагает те же гарантии домена сбоя, что и группы доступности. Масштабирование позволяет создать до 1000 экземпляров. Для зональных развертываний, в которых экземпляры распределяется между несколькими зонами доступности, количество доменов сбоя должно быть равным 1.

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

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

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

Миграция существующих виртуальных машин группы доступности

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

Сине-зеленая или параллельная миграция

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

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

  1. Обратите внимание на параметры, которые вы хотите использовать для виртуальной машины (имя, идентификатор сетевого адаптера, ОС и идентификаторы дисков данных, параметры конфигурации виртуальной машины, размещение домена сбоя и т. д.).
  2. Удаление виртуальной машины группы доступности. Сетевые адаптеры и диски для виртуальной машины не будут удалены
  3. Создание нового объекта виртуальной машины с использованием параметров из исходной виртуальной машины
    • Идентификатор сетевого адаптера
    • ОС и диски данных
    • Размещение домена сбоя
    • Новые параметры виртуальной машины

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

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

  • Удалите LoadBalancerNATPool (недопустимо для гибкой оркестрации)
  • Удалите параметр избыточной подготовки (недопустимо для гибкой оркестрации)
  • Удалите upgradePolicy (пока недопустимо для гибкой оркестрации)
  • Обновите версию API вычислений до 2021-03-01
  • Добавьте режим оркестрации flexible
  • Требуется platformFaultDomainCount
  • Требуется singlePlacementGroup=false
  • Установите версию API сети к 2021-11-01 или более позднюю
  • Задайте для параметра IP configuration.properties.primary значение true (требуется для правил исходящего трафика)

Миграция существующих универсальных масштабируемых наборов

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

Сине-зеленая или параллельная миграция

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

Рекомендации по гибким масштабируемым наборам

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

Создание масштабируемого сетевого подключения

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

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

  • В большинстве случаев рекомендуется использовать подключенный к подсети шлюз NAT.
  • В сценариях с высокими требованиями к безопасности или при использовании Брандмауэра Azure или сетевого виртуального модуля (NVA) можно указать настраиваемый определяемый пользователем маршрут в качестве следующего прыжка через брандмауэр.
  • Экземпляры находятся во внутреннем пуле Azure Load Balancer с SKU категории "Стандартный".
  • Подключение общедоступного IP-адреса к сетевому интерфейсу экземпляра.

В число распространенных сценариев, для которых требуется явное исходящее подключение, входят следующие:

  • Для активации виртуальной машины Windows потребуется определить исходящее подключение от экземпляра виртуальной машины к службе управления ключами (KMS) активации Windows. Дополнительные сведения см. в статье Устранение неполадок с активацией виртуальных машин Windows.
  • Доступ к учетным записям хранения или Key Vault. Подключение к службам Azure также можно установить с помощью Приватного канала.
  • Обновления Windows.
  • Доступ к диспетчерам пакетов Linux.

Дополнительные сведения см. в статье Исходящий доступ по умолчанию в Azure.

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

Важно!

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

Назначение домена сбоя при создании виртуальной машины

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

az vm create –vmss "myVMSS"  –-platform_fault_domain 1

Именование экземпляров

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

Изменение списка масштабируемых наборов API виртуальных машин

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

Экземпляры запросов для состояния включения

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

| where type =~ 'Microsoft.Compute/virtualMachines'
| where properties.virtualMachineScaleSet contains "demo"
| extend powerState = properties.extended.instanceView.powerState.code
| project name, resourceGroup, location, powerState
| order by resourceGroup desc, name desc

Запрос ресурсов с помощью Azure Resource Graph — это удобный и эффективный способ запроса ресурсов Azure и сворачивания вызовов API к поставщику ресурсов. Azure Resource Graph — это в перспективе единообразный кэш, в котором отображение новых или обновленных ресурсов может занять до 60 секунд. Вы можете:

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

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

Используйте стандартные команды виртуальной машины для запуска, завершения, перезапуска и удаления экземпляров вместо интерфейсов API виртуальных машин масштабируемого набора. Пакетные операции масштабируемого набора виртуальных машин (запуск всех, остановка всех, повторное создание образа и т. д.) не используются в режиме гибкой оркестрации.

Мониторинг работоспособности приложений

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

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

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

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

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

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

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

Дальнейшие действия