Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
30 сентября 2025 г. базовая подсистема балансировки нагрузки будет прекращена. Дополнительные сведения см. в официальном объявлении. Если вы в настоящее время используете подсистему балансировки нагрузки в базовой версии, обязательно обновите ее до стандартной версии до даты прекращения обслуживания.
Azure Standard Load Balancer предлагает широкий набор функций и высокий уровень доступности благодаря избыточности зон. Дополнительные сведения о ценовой категории Load Balancer содержатся в сравнительной таблице.
В этой статье представлен модуль PowerShell, который создает стандартный балансировщик нагрузки с той же конфигурацией, что и базовый балансировщик, а затем связывает участников внутреннего пула масштабируемого набора виртуальных машин или виртуальной машины с новым балансировщиком нагрузки.
Подробные инструкции по модулю обновления и процессу см. в следующем видео:
- 03:06 — пошаговые действия
- 32:54 — восстановление
- 40:55 — расширенные сценарии
- 57:54 — ресурсы
Обзор обновления
Модуль PowerShell выполняет следующие функции:
- Проверяет, поддерживается ли сценарий базовой подсистемы балансировки нагрузки для обновления.
- Создает резервную копию конфигурации основного балансировщика нагрузки и масштабируемого набора виртуальных машин, включая повторные попытки при сбое или в случае возникновения ошибок.
- Для общедоступных балансировщиков нагрузки обновляет внешние общедоступные IP-адреса до стандартного SKU и статического назначения.
- Обновляет конфигурацию базового балансировщика нагрузки до новой стандартной версии, обеспечивая согласованность конфигурации и функций.
- Переносит участников шкалируемого набора виртуальных машин и серверного пула виртуальных машин из “базовой подсистемы балансировки нагрузки” в “стандартную подсистему балансировки нагрузки”.
- Создает и связывает группу безопасности сети с масштабируемым набором виртуальных машин или виртуальной машиной, чтобы обеспечить балансировку нагрузки трафика до членов внутреннего пула. Это связано с переходом Standard Load Balancer на политику сети, запрещающую по умолчанию.
- Обновляет общедоступные IP-адреса уровня экземпляра, связанные с масштабируемым набором виртуальных машин или экземплярами виртуальных машин.
- Обновляет входящие пулы NAT до входящих правил NAT для серверных групп масштабируемого набора виртуальных машин, создавая новый серверный пул для каждого перенесенного пула NAT. Укажите
-skipUpgradeNATPoolsToNATRules
, чтобы пропустить это обновление и позже использовать автономный модуль миграции пула NAT для получения дополнительных вариантов внутреннего пула. - Регистрирует операцию обновления для облегчения аудита и восстановления после сбоев.
Предупреждение
Миграция внутренних базовых подсистем балансировки нагрузки, в которых серверные виртуальные машины или экземпляры VMSS не имеют общедоступных IP-адресов, требуют дополнительных шагов для подключения серверной части к Интернету. Узнайте , как настроить исходящий трафик для подсистемы балансировки нагрузки?
Примечание.
Если масштабируемый набор виртуальных машин в серверном пуле Load Balancer имеет общедоступные IP-адреса в конфигурации сети, общедоступные IP-адреса, связанные с каждым экземпляром масштабируемого набора виртуальных машин, изменятся при обновлении до номера SKU уровня "Стандартный". Это связано с тем, что общедоступные IP-адреса уровня экземпляра масштабируемого набора не могут быть обновлены, их можно только заменить новым общедоступным IP-адресом SKU уровня "Стандартный". Все остальные общедоступные IP-адреса будут сохранены с помощью миграции.
Примечание.
Если масштабируемый набор виртуальных машин за системой балансировки нагрузки является кластером Service Fabric, миграция с помощью этого скрипта займет больше времени, возрастает риск для приложения и может вызвать простой. Ознакомьтесь с руководством по обновлению подсистемы балансировки нагрузки кластера Service Fabric, чтобы ознакомиться с параметрами миграции.
Неподдерживаемые сценарии
- Базовые подсистемы балансировки нагрузки с интерфейсными IP-конфигурациями IPv6
- Базовые балансировщики нагрузки для кластеров служб Azure Kubernetes (AKS)
- Базовые подсистемы балансировки нагрузки с членом внутреннего пула масштабируемого набора виртуальных машин, где один или несколько экземпляров масштабируемого набора виртуальных машин включены политики защиты экземпляров ProtectFromScaleSetActions
- Перенос базового балансировщика нагрузки на существующий стандартный балансировщик нагрузки
- Если в базовой подсистеме балансировки нагрузки включен плавающий IP-адрес в вторичной конфигурации сетевого интерфейса, обновите плавающий IP-адрес на первичный IP-адрес перед запуском скрипта миграции, чтобы избежать проблем с конфигурацией.
Установка модуля AzureBasicLoadBalancerUpgrade
Требования
- PowerShell: поддерживаемая версия PowerShell версии 7 или выше рекомендуется использовать с модулем AzureBasicLoadBalancerUpgrade на всех платформах, включая Windows, Linux и macOS. Однако PowerShell 5.1 в Windows поддерживается.
Установка модуля
Установите модуль из PowerShell Gallery
Install-Module -Name AzureBasicLoadBalancerUpgrade -Scope CurrentUser -Repository PSGallery -Force
Этапы предварительной и последующей миграции
Шаги по подготовке к миграции
- Проверка поддержки сценария
- Планирование простоя приложения во время миграции
- Разработайте тесты подключения для входящего и исходящего трафика
- Планирование изменений общедоступного IP-адреса уровня экземпляра на экземплярах масштабируемого набора виртуальных машин (см. примечание).
- [Рекомендуется] Создайте группы безопасности сети или добавьте правила безопасности в существующую группу безопасности сети для участников внутреннего пула. Разрешить проход трафика через балансировщик нагрузки, а также любого другого трафика, явно разрешив это в общедоступных ресурсах SKU стандарта.
- [Рекомендуется] Подготовьте исходящее подключение, выполнив один из следующих подходов, описанных в разделе "Как настроить исходящий трафик для подсистемы балансировки нагрузки"?
Шаги после миграции
- Проверка успешности миграции
- Тестирование подключения к входящего приложения с помощью Load Balancer
- Проверка исходящего подключения от участников пула задних серверов в Интернет
- Для общедоступных подсистем балансировки нагрузки с несколькими внутренними пулами создайте правила исходящего трафика для каждого внутреннего пула.
Использование модуля
Убедитесь, что вы выбрали идентификатор подписки Basic Load Balancer, выполнив команду
Select-AzSubscription
.Select-AzSubscription -Subscription <SubscriptionId>
Найдите подсистему балансировки нагрузки, которую вы хотите обновить. Запишите его название и название группы ресурсов.
Изучите основные параметры модуля:
- BasicLoadBalancerName [string] Обязательный параметр — это имя существующей базовой подсистемы балансировки нагрузки, которая требуется обновить.
- ResourceGroupName [string] Обязательный параметр — это имя группы ресурсов, содержащей базовую подсистему балансировки нагрузки
- StandardLoadBalancerName [строка] Необязательно - Используйте этот параметр, чтобы при необходимости задать новое имя для стандартного балансировщика нагрузки. Если не указано, используется повторно имя "Базовый балансировщик нагрузки".
- RecoveryBackupPath [string] Необязательный параметр — этот параметр позволяет указать альтернативный путь, в котором будет храниться файл резервной копии шаблона ARM basic Load Balancer (по умолчанию используется текущий рабочий каталог).
Совет
Дополнительные параметры для расширенных сценариев восстановления можно просмотреть, выполнив команду
Get-Help Start-AzBasicLoadBalancerUpgrade -Detailed
Выполните команду
Start-AzBasicLoadBalancerUpgrade
, используя следующие примеры в качестве руководства.
Пример: проверка сценария
Проверка поддержки базовой подсистемы балансировки нагрузки для обновления
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -validateScenarioOnly:$true
Пример: обновление по имени
Обновите базовую подсистему балансировки нагрузки до стандартной подсистемы балансировки нагрузки с тем же именем, указав имя базовой подсистемы балансировки нагрузки и имя группы ресурсов.
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName>
Пример: обновление, изменение имени и отображение журналов
Обновите базовый балансировщик нагрузки до стандартного балансировщика нагрузки с указанным именем, отображаемым в выходных данных журнала.
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -FollowLog
Пример: обновление с альтернативным путем резервного копирования
Обновите базовый балансировщик нагрузки до стандартного балансировщика нагрузки с указанным именем и сохраните файл резервного копирования базового балансировщика нагрузки по указанному пути.
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -RecoveryBackupPath C:\BasicLBRecovery
Пример: проверка завершенной миграции
Проверка завершенной миграции выполняется путем резервного копирования файла состояния балансировщика нагрузки уровня "Базовый" и указания имени балансировщика нагрузки стандартного уровня.
Start-AzBasicLoadBalancerUpgrade -validateCompletedMigration -StandardLoadBalancerName <newStandardLBName> -basicLoadBalancerStatePath C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json
Пример. Перенос нескольких связанных подсистем балансировки нагрузки
Перенос нескольких подсистем балансировки нагрузки с общими внутренними элементами одновременно, как правило, если у приложения есть внутренняя и внешняя подсистема балансировки нагрузки.
# build array of multiple basic load balancers
$multiLBConfig = @(
@{
'standardLoadBalancerName' = 'myStandardInternalLB01' # specifying the standard load balancer name is optional
'basicLoadBalancer' = (Get-AzLoadBalancer -ResourceGroupName myRG -Name myBasicInternalLB01)
},
@{
'standardLoadBalancerName' = 'myStandardExternalLB02'
'basicLoadBalancer' = (Get-AzLoadBalancer -ResourceGroupName myRG -Name myBasicExternalLB02)
}
)
# pass the array of load balancer configurations to the -MultiLBConfig parameter
Start-AzBasicLoadBalancerUpgrade -MultiLBConfig $multiLBConfig
Пример: повторная попытка миграции неудавшегося масштабируемого набора виртуальных машин
Повторите неудачное обновление для балансировщика нагрузки масштабируемого набора виртуальных машин (из-за ошибки или завершения скрипта), предоставив базовый файл состояния резервного копирования для балансировщика нагрузки и масштабируемого набора виртуальных машин.
Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json -FailedMigrationRetryFilePathVMSS C:\RecoveryBackups\VMSS_myVMSS_rg-basiclbrg_20220912T1740032148.json
Пример. Повторная миграция виртуальной машины завершилась сбоем
Повторите неудачное обновление для подсистемы балансировки нагрузки виртуальной машины (из-за ошибки или завершения скрипта), предоставив файл состояния резервного копирования Basic Load Balancer
Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json
Часто задаваемые вопросы
Как перечислить базовые подсистемы балансировки нагрузки, которые нужно перенести в моей среде?
Один из способов получить список базовых подсистем балансировки нагрузки, которые необходимо перенести в вашей среде, — использовать запрос Azure Resource Graph. В следующем запросе перечислены все базовые подсистемы балансировки нагрузки, которые у вас есть для просмотра:
Resources
| where type == 'microsoft.network/loadbalancers' and sku.name == 'Basic'
Мы создали сложный запрос, который оценивает готовность каждого базового балансировщика нагрузки для миграции по большинству критериев, которые этот модуль проверяет в процессе проверки. Запрос Resource Graph можно найти в проекте GitHub или открыть в обозревателе ресурсов Azure.
Приведет ли эта миграция к простою приложения?
Да, так как базовый балансировщик нагрузки должен быть удален до создания нового стандартного балансировщика нагрузки, в вашем приложении будет простой. Узнайте , сколько времени занимает обновление?
Перенесёт ли модуль мой пользовательский IP-адрес на новый стандартный балансировщик нагрузки?
Да, для общедоступных и внутренних балансировщиков нагрузки модуль гарантирует, что IP-адреса на переднем плане сохраняются. Для общедоступных IP-адресов IP-адрес преобразуется в статический IP-адрес перед миграцией. Для внутренних внешних интерфейсов модуль пытается переназначить тот же IP-адрес, освобожденный при удалении Базовой подсистемы балансировки нагрузки. Если частный IP-адрес недоступен, скрипт завершается сбоем (см. раздел Что произойдет, если обновление завершается сбоем во время миграции?).
Сколько времени занимает обновление?
Обновление обычно занимает несколько минут, чтобы скрипт завершился. Следующие факторы могут привести к более длительному времени обновления:
- Сложность конфигурации подсистемы балансировки нагрузки
- Количество членов серверного пула
- Количество экземпляров связанных масштабируемых наборов виртуальных машин или виртуальных машин
- Кластер Service Fabric: обновление кластеров Service Fabric занимает около часа при тестировании.
Помните о времени простоя и при необходимости планируйте резервное переключение.
Переносит ли скрипт участников пулов внутреннего бэкенда из моего базового балансировщика нагрузки в только что созданный балансировщик нагрузки стандартной категории?
Да. Скрипт Azure PowerShell переносит Масштабируемые наборы виртуальных машин и виртуальные машины в только что созданные серверные пулы стандартного балансировщика нагрузки.
Какие компоненты подсистемы балансировки нагрузки переносятся?
Скрипт переносит следующее из Базового балансировщика нагрузки в Стандартный балансировщик нагрузки:
Общедоступные и частные подсистемы балансировки нагрузки:
- Пробы работоспособности:
- Все тесты переносятся в новый стандартный балансировщик нагрузки.
- Правила балансировки нагрузки:
- Все правила балансировки нагрузки переносятся в новый Стандартный Балансировщик Нагрузки.
- Правила NAT для входящего трафика:
- Все созданные пользователем правила NAT переносятся в новую стандартную систему балансировки нагрузки.
- Входящие пулы NAT:
- По умолчанию пулы NAT обновляются до правил NAT
- Чтобы перенести пулы NAT, укажите
-skipUpgradeNATPoolsToNATRules
параметр при обновлении
- Серверные пулы:
- Все серверные пулы переносятся на новый стандартный балансировщик нагрузки.
- Все масштабируемые наборы виртуальных машин, сетевые интерфейсы виртуальных машин и IP-конфигурации переносятся на новый стандартный балансировщик нагрузки.
- Если масштабируемый набор виртуальных машин использует политику последовательного обновления, скрипт обновит политику обновления масштабируемого набора виртуальных машин до "Вручную" во время процесса миграции и вернется к "Rolling" после завершения миграции.
- Общедоступные IP-адреса уровня экземпляра
- Для Виртуальных машин и масштабируемых наборов виртуальных машин преобразует присоединенные общедоступные IP-адреса из уровня "Базовый" в уровень "Стандартный". Обратите внимание, что общедоступные IP-адреса экземпляров масштабируемого набора изменяются во время обновления, а IP-адреса виртуальных машин не изменяются.
- Теги из Basic Load Balancer на Standard Load Balancer
Общедоступная подсистема балансировки нагрузки:
- Общедоступная IP-конфигурация внешнего интерфейса
- Преобразует общедоступный IP-адрес в статический IP-адрес, если динамический
- Обновляет тип SKU общедоступного IP-адреса на "Стандартный", если он был "Базовый".
- Обновите все связанные общедоступные IP-адреса до новой стандартной версии балансировщика нагрузки.
- Правила исходящего трафика:
- Базовые подсистемы балансировки нагрузки не поддерживают настроенные правила исходящего трафика. Скрипт создает правило исходящего трафика в подсистеме балансировки нагрузки уровня "Стандартный", чтобы сохранить исходящее поведение подсистемы балансировки нагрузки Basic. Дополнительные сведения о правилах для исходящего трафика см. в этой статье.
- Группа безопасности сети
- Базовая подсистема балансировки нагрузки не требует группы безопасности сети, чтобы разрешить исходящее подключение. Если нет группы безопасности сети, связанной с масштабируемым набором виртуальных машин, создается новая группа безопасности сети для сохранения той же функциональности. Эта новая группа безопасности сети ассоциирована с сетевыми интерфейсами участников внутреннего пула масштабируемого набора виртуальных машин. Он позволяет использовать те же правила балансировки нагрузки, порты и протоколы, а также сохранение исходящего подключения.
Внутренняя подсистема балансировки нагрузки:
- Конфигурация частных интерфейсных IP-адресов
Примечание.
Группы безопасности сети не настроены в рамках обновления внутренней подсистемы балансировки нагрузки. Дополнительные сведения о группах безопасности сети см. в разделе "Группы безопасности сети"
Как мне мигрировать, если участники моего бекенд пула принадлежат нескольким балансировщикам нагрузки?
В сценарии, когда члены внутреннего пула также являются членами внутренних пулов в другой подсистеме балансировки нагрузки, например при наличии внутренних и внешних подсистем балансировки нагрузки для одного приложения, необходимо перенести базовые подсистемы балансировки нагрузки одновременно. При попытке переносить подсистемы балансировки нагрузки одну за другой возникает попытка смешивания ресурсов SKU "Базовый" и "Стандартный", что не допускается. Сценарий миграции поддерживает это путем передачи нескольких базовых подсистем балансировки нагрузки в одно и то же выполнение скрипта -MultiLBConfig
с помощью параметра.
Как проверить, что миграция прошла успешно?
В конце выполнения модуль обновления выполняет следующие проверки, сравнивая Базовый балансировщик нагрузки с новым Стандартным балансировщиком нагрузки. При неудачной миграции эту же операцию можно вызвать с использованием параметров -validateCompletedMigration
и -basicLoadBalancerStatePath
для определения состояния конфигурации стандартного балансировщика нагрузки (если он был создан). Файл журнала, созданный во время миграции, также содержит подробные сведения об операции миграции и любых ошибках.
- Балансировщик нагрузки существует, и его SKU — "Standard".
- Количество конфигураций IP-адресов фронтенда совпадает, и IP-адреса одинаковы.
- Число бэкенд-пулов и их составов совпадают.
- Количество правил балансировки нагрузки совпадает
- Количество совпадений проб работоспособности
- Количество совпадений правил NAT для входящего трафика
- Количество совпадений пулов NAT для входящих подключений
- У внешних балансировщиков нагрузки настроенные правило для исходящего трафика.
- Внешние стандартные балансировщики нагрузки имеют связанные группы безопасности сети для членов пула бэкенда.
Как настроить исходящий трафик для подсистемы балансировки нагрузки?
Подсистемы балансировки нагрузки SKU уровня "Стандартный" не разрешают исходящий доступ по умолчанию для членов внутреннего пула. Разрешение исходящего доступа к Интернету требует дополнительных шагов.
Для внешних балансировщиков нагрузки вы можете использовать Правила исходящего трафика, чтобы явно включить исходящий трафик для членов пула. Если у вас есть один внутренний пул, мы автоматически настраиваем правило исходящего трафика для вас во время миграции; Если у вас несколько серверных пулов, необходимо вручную создать правила исходящего трафика, чтобы указать выделение портов.
Для внутренних балансировщиков нагрузки исходящие правила не могут быть применены, поскольку нет общедоступного IP-адреса для SNAT. Это оставляет несколько вариантов, чтобы рассмотреть следующее:
- Шлюзы NAT — это рекомендованный Azure подход для исходящего трафика в большинстве случаев. Однако шлюзы NAT требуют, чтобы присоединенная подсеть не имеет основных сетевых ресурсов SKU, то есть вам нужно перенести все подсистемы балансировки нагрузки и общедоступные IP-адреса, прежде чем использовать их. По этой причине мы рекомендуем использовать двухэтапный подход, в котором сначала используется один из следующих подходов для исходящего подключения, а затем переключитесь на шлюзы NAT после завершения базовой миграции SKU.
- Сетевое виртуальное устройство: маршрутизация трафика через сетевое виртуальное устройство, например Брандмауэр Azure, для маршрутизации трафика в Интернет. Этот вариант идеально подходит, если у вас уже настроен сетевой виртуальный модуль.
- Вторичный внешний балансировщик нагрузки: добавив второй внешний балансировщик нагрузки к внешним ресурсам, можно использовать внешний балансировщик нагрузки для исходящего трафика, настроив правила для исходящего трафика. Если этот внешний балансировщик нагрузки не имеет правил балансировки нагрузки, правил NAT или пулов NAT для входящего трафика, серверные ресурсы остаются изолированными для внутренней сети для входящего трафика — см. настройки балансировщика нагрузки только для исходящего трафика. С помощью этого параметра внешняя подсистема балансировки нагрузки может быть настроена перед миграцией с базового на стандартный номер SKU и мигрировать одновременно с внутренним балансировщиком нагрузки.
- Общедоступные IP-адреса: Наконец, общедоступные IP-адреса можно добавлять непосредственно к Виртуальным машинам или экземплярам масштабируемого набора виртуальных машин. Однако этот параметр не рекомендуется из-за дополнительной области безопасности и расходов на добавление общедоступных IP-адресов.
Что произойдет, если обновление завершится сбоем в процессе миграции?
Модуль предназначен для обработки сбоев, возникающих из-за необработанных ошибок или непредвиденного завершения скрипта. Проектирование отказов основано на подходе «двигаться вперед», где вместо попытки вернуться к базовой подсистеме балансировки нагрузки необходимо исправить проблему, вызвавшую сбой (см. выходные данные ошибки или файл журнала) и повторить миграцию, указав параметры -FailedMigrationRetryFilePathLB <BasicLoadBalancerBackupFilePath> -FailedMigrationRetryFilePathVMSS <VMSSBackupFile>
. Для общедоступных подсистем балансировки нагрузки, так как номер SKU общедоступного IP-адреса обновляется до уровня "Стандартный", перемещение того же IP-адреса обратно в базовую подсистему балансировки нагрузки невозможно.
Просмотрите видео процесса восстановления:
Если сбой миграции был направлен на несколько подсистем балансировки нагрузки одновременно, используя -MultiLBConfig
параметр, восстановите каждую подсистему балансировки нагрузки по отдельности с помощью следующего процесса:
- Устранение причины сбоя миграции. Проверьте файл
Start-AzBasicLoadBalancerUpgrade.log
журнала для получения сведений - Удалите новый стандартный балансировщик нагрузки (если он создан). В зависимости от того, на каком этапе миграции произошел сбой, вам может понадобиться удалить ссылку Standard Load Balancer из масштабируемого набора виртуальных машин, сетевых интерфейсов виртуальных машин (IP-конфигураций) и/или проб работоспособности, чтобы удалить Standard Load Balancer.
- Найдите файл резервного копирования состояния базового балансировщика нагрузки. Этот файл находится в каталоге, в котором был выполнен скрипт, или по пути, указанному параметром
-RecoveryBackupPath
во время неудачного выполнения. Файл называется:State_<basicLBName>_<basicLBRGName>_<timestamp>.json
- Повторно выполните скрипт миграции, указав параметры
-FailedMigrationRetryFilePathLB <BasicLoadBalancerbackupFilePath>
и-FailedMigrationRetryFilePathVMSS <VMSSBackupFile>
(для серверных частей масштабируемого набора виртуальных машин) вместо -BasicLoadBalancerName или передав базовый балансировщик нагрузки через конвейер.