Перенос развертываний и ресурсов в Масштабируемые наборы виртуальных машин в гибкой оркестрации
Как и группы доступности, Масштабируемые наборы виртуальных машин позволяет распространять виртуальные машины между несколькими доменами сбоя. Масштабируемые наборы виртуальных машин с гибкой оркестрацией позволяет объединить масштабируемость Масштабируемые наборы виртуальных машин в едином режиме оркестрации с региональными гарантиями доступности наборов доступности. В этой статье рассматриваются вопросы миграции при переключении в режим гибкой оркестрации для Масштабируемые наборы виртуальных машин.
Обновление шаблонов и скриптов развертываний группы доступности
Сначала необходимо создать масштабируемый набор виртуальных машин без профиля автоматического масштабирования с помощью Azure CLI, Azure PowerShell или шаблона ARM. портал Azure только позволяет создавать масштабируемый набор виртуальных машин с профилем автомасштабирования. Если вы не хотите или не нуждаетесь в профиле автомасштабирования и хотите создать масштабируемый набор с помощью портал Azure, можно задать начальную емкость 0.
Необходимо указать количество доменов сбоя для масштабируемого набора виртуальных машин. Для региональных (незональных) развертываний Масштабируемые наборы виртуальных машин предлагает те же гарантии домена сбоя, что и группы доступности. Масштабирование позволяет создать до 1000 экземпляров. Для зональных развертываний, в которых вы распространяете экземпляры между несколькими зонами доступности, необходимо задать значение 1.
В гибком режиме оркестрации не рекомендуется использовать домены обновления. Большинство обновлений платформы с номерами SKU общего назначения выполняются с помощью динамической миграции и не требуют перезагрузки экземпляра. В случаях, когда для обслуживания платформы требуется перезагрузка экземпляров, обновления применяются к доменам сбоя по очереди.
Гибкая оркестрация для Масштабируемые наборы виртуальных машин также поддерживает развертывание экземпляров в нескольких зонах доступности. Вам может потребоваться обновить развертывания виртуальных машин, чтобы распределять их по нескольким зонам доступности.
Последний шаг в этом процессе — создание виртуальной машины. Вместо указания группы доступности укажите масштабируемый набор виртуальных машин. При необходимости можно указать зону доступности или домен сбоя, в котором вы хотите разместить виртуальную машину.
Миграция существующих виртуальных машин группы доступности
В настоящее время автоматизированное средство для прямого перемещения существующих экземпляров в группе доступности в масштабируемый набор виртуальных машин отсутствует. Однако существует несколько стратегий, которые можно использовать для переноса существующих экземпляров в гибкий масштабируемый набор.
Сине-зеленая или параллельная миграция
- Выведите новые экземпляры виртуальных машин масштабируемого набора с аналогичной конфигурацией в одну группу ресурсов, виртуальную сеть, подсистему балансировки нагрузки и т. д. в качестве виртуальных машин в доступности.
- Перенос данных, сетевой трафик и т. д. для использования новых экземпляров масштабируемого набора
- Отмените выделение или удалите исходные виртуальные машины набора доступности, чтобы освободить виртуальные машины масштабируемого набора, выполняющиеся для вашего приложения.
Замена экземпляров виртуальных машин
- Обратите внимание на параметры, которые вы хотите использовать для виртуальной машины (имя, идентификатор сетевого адаптера, ОС и идентификаторы дисков данных, параметры конфигурации виртуальной машины, размещение домена сбоя и т. д.).
- Удаление виртуальной машины группы доступности. Сетевые адаптеры и диски виртуальной машины не будут удалены.
- Создание объекта виртуальной машины с помощью параметров исходной виртуальной машины
- Идентификатор сетевого адаптера
- ОС и диски данных
- Размещение домена сбоя
- Новые параметры виртуальной машины
Обновление шаблонов и скриптов развертывания универсальных масштабируемых наборов
Обновите универсальные Масштабируемые наборы виртуальных машин шаблоны развертывания и скрипты для использования гибкой оркестрации. Чтобы успешно завершить процесс, измените следующие элементы в шаблонах.
- Удалите
LoadBalancerNATPool
(недопустимо для гибкой оркестрации) - Удалите параметр избыточной подготовки (недопустимо для гибкой оркестрации)
- Удалите
upgradePolicy
(пока недопустимо для гибкой оркестрации) - Обновите версию API вычислений до 2021-03-01
- Добавьте режим оркестрации
flexible
- Требуется
platformFaultDomainCount
- Требуется
singlePlacementGroup
=false - Установите версию API сети к 2021-11-01 или более позднюю
- Задайте для параметра IP
configuration.properties.primary
значение true (требуется для правил исходящего трафика)
Миграция существующих универсальных масштабируемых наборов
В настоящее время нет автоматизированных инструментов для прямого перемещения существующих экземпляров или обновления универсального масштабируемого набора до гибкого масштабируемого набора виртуальных машин. Однако вот стратегия, которую можно использовать для переноса существующих экземпляров в гибкий масштабируемый набор:
Сине-зеленая или параллельная миграция
- Выведите новый масштабируемый набор в режиме гибкой оркестрации с аналогичной конфигурацией в ту же группу ресурсов, виртуальную сеть, подсистему балансировки нагрузки и т. д. в качестве исходного масштабируемого набора в универсальном режиме оркестрации.
- Перенос данных, сетевой трафик и т. д. для использования новых экземпляров масштабируемого набора
- Выполните уменьшение масштаба или удалите исходные универсальные виртуальные машины масштабируемого набора, оставив виртуальные машины масштабируемого набора работать для вашего приложения.
Рекомендации по гибким масштабируемым наборам
Масштабируемые наборы виртуальных машин с гибкой оркестрацией позволяет объединить масштабируемость Масштабируемые наборы виртуальных машин в единой оркестрации с региональными гарантиями доступности наборов доступности. Ниже приведены основные моменты, которые следует учитывать при принятии решения о работе с гибким режимом оркестрации.
Создание масштабируемого сетевого подключения
Поведение исходящего доступа сети зависит от способа выбора создания виртуальных машин в масштабируемом наборе. Добавленные вручную экземпляры виртуальных машин имеют доступ к исходящим подключениям по умолчанию. Неявно созданные экземпляры виртуальных машин не имеют доступа по умолчанию.
Чтобы повысить безопасность сети по умолчанию, экземпляры виртуальных машин, созданные неявно с помощью профиля автомасштабирования, не имеют исходящего доступа по умолчанию. Чтобы использовать Масштабируемые наборы виртуальных машин с неявно созданными экземплярами виртуальных машин, исходящий доступ должен быть явно определен с помощью одного из следующих методов:
- В большинстве случаев рекомендуется использовать подключенный к подсети шлюз 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.