Обновление базовой подсистемы балансировки нагрузки с помощью PowerShell
Внимание
30 сентября 2025 г. базовая подсистема балансировки нагрузки будет прекращена. Дополнительные сведения см. в официальном объявлении. Если вы используете Базовую подсистему балансировки нагрузки, обязательно обновите ее до Load Balancer (цен. категория до даты выхода на пенсию.
Azure Load Balancer (цен. категория "Стандартный") предлагает широкий набор функций и высокий уровень доступности за счет избыточности между зонами. Дополнительные сведения о ценовой категории Load Balancer содержатся в сравнительной таблице.
В этой статье представлен модуль PowerShell, который создает Load Balancer (цен. категория с той же конфигурацией, что и базовая подсистема балансировки нагрузки, а затем связывает масштабируемый набор виртуальных машин или члены внутреннего пула виртуальных машин с новым подсистемой балансировки нагрузки.
Подробные инструкции по модулю обновления и процессу см. в следующем видео:
- 03:06 — пошаговые действия
- 32:54 — восстановление
- 40:55 — расширенные сценарии
- 57:54 — ресурсы
Обзор обновления
Модуль PowerShell выполняет следующие функции:
- Проверяет, поддерживается ли сценарий базовой подсистемы балансировки нагрузки для обновления.
- Резервное копирование конфигурации базовой подсистемы балансировки нагрузки и масштабируемого набора виртуальных машин, включение повторных попыток при сбое или возникновении ошибок.
- Для общедоступных подсистем балансировки нагрузки обновляет внешние общедоступные IP-адреса до номера SKU уровня "Стандартный" и статического назначения
- Обновляет базовую конфигурацию Load Balancer до новой Load Balancer (цен. категория , обеспечивая четность конфигурации и компонентов.
- Переносит масштабируемый набор виртуальных машин и члены серверного пула виртуальных машин из базовой подсистемы балансировки нагрузки в Load Balancer (цен. категория .
- Создает и связывает группу безопасности сети с масштабируемым набором виртуальных машин или виртуальной машиной, чтобы обеспечить балансировку нагрузки трафика до членов внутреннего пула после перехода 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
- Перенос базовой подсистемы балансировки нагрузки на существующий Load Balancer (цен. категория
Установка модуля AzureBasicLoadBalancerUpgrade
Необходимые компоненты
- PowerShell: поддерживаемая версия PowerShell версии 7 или выше рекомендуется использовать с модулем AzureBasicLoadBalancerUpgrade на всех платформах, включая Windows, Linux и macOS. Однако PowerShell 5.1 в Windows поддерживается.
Установка модуля
Установка модуля из коллекция PowerShell
Install-Module -Name AzureBasicLoadBalancerUpgrade -Scope CurrentUser -Repository PSGallery -Force
Этапы предварительной и последующей миграции
Шаги по подготовке к миграции
- Убедитесь , что ваш сценарий поддерживается
- Планирование простоя приложения во время миграции
- Разработка тестов подключения для входящих и исходящих подключений для трафика
- Планирование изменений общедоступного IP-адреса уровня экземпляра на экземплярах масштабируемого набора виртуальных машин (см. примечание).
- [Рекомендуется] Создайте группы безопасности сети или добавьте правила безопасности в существующую группу безопасности сети для участников внутреннего пула. Разрешить трафик через Load Balancer и любой другой трафик, который должен быть явно разрешен для общедоступных ресурсов SKU уровня "Стандартный"
- [Рекомендуется] Подготовьте исходящее подключение, выполнив один из следующих подходов, описанных в разделе "Как настроить исходящий трафик для подсистемы балансировки нагрузки"?
Шаги после миграции
- Проверка успешности миграции
- Тестирование подключения к входящего приложения с помощью Load Balancer
- Проверка исходящего подключения из участников внутреннего пула в Интернет
- Для общедоступных подсистем балансировки нагрузки с несколькими внутренними пулами создайте правила исходящего трафика для каждого внутреннего пула.
Использование модуля
Убедитесь, что вы выбрали идентификатор подписки Basic Load Balancer, выполнив команду
Select-AzSubscription
.Select-AzSubscription -Subscription <SubscriptionId>
Найдите подсистему балансировки нагрузки, которую вы хотите обновить. Запишите имя и имя группы ресурсов.
Изучите основные параметры модуля:
- BasicLoadBalancerName [string] Обязательный параметр — это имя существующей базовой подсистемы балансировки нагрузки, которая требуется обновить.
- ResourceGroupName [string] Обязательный параметр — это имя группы ресурсов, содержащей базовую подсистему балансировки нагрузки
- StandardLoadBalancerName [string] Необязательно. Используйте этот параметр, чтобы при необходимости настроить новое имя для Load Balancer (цен. категория . Если это не указано, имя подсистемы балансировки нагрузки "Базовый" используется повторно.
- RecoveryBackupPath [string] Необязательный параметр — этот параметр позволяет указать альтернативный путь, в котором будет храниться файл резервной копии шаблона ARM basic Load Balancer (по умолчанию используется текущий рабочий каталог).
Совет
Дополнительные параметры для расширенных сценариев восстановления можно просмотреть, выполнив команду
Get-Help Start-AzBasicLoadBalancerUpgrade -Detailed
Выполните команду, используя приведенные
Start-AzBasicLoadBalancerUpgrade
ниже примеры рекомендаций.
Пример: проверка сценария
Проверка поддержки базовой подсистемы балансировки нагрузки для обновления
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -validateScenarioOnly
Пример: обновление по имени
Обновите базовую подсистему балансировки нагрузки до Load Balancer (цен. категория с тем же именем, указав имя и имя группы ресурсов базовой подсистемы балансировки нагрузки.
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName>
Пример: обновление, изменение имени и отображение журналов
Обновите базовую подсистему балансировки нагрузки до Load Balancer (цен. категория с указанным именем, отображая выходные данные в журнале на экране
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -FollowLog
Пример: обновление с альтернативным путем резервного копирования
Обновите базовую подсистему балансировки нагрузки до Load Balancer (цен. категория с указанным именем и сохраните файл резервного копирования Basic Load Balancer по указанному пути.
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -RecoveryBackupPath C:\BasicLBRecovery
Пример: проверка завершенной миграции
Проверка завершенной миграции путем передачи резервного копирования файла состояния Load Balancer уровня "Базовый" и имени Load Balancer (цен. категория
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.
Приведет ли эта миграция к простою приложения?
Да, так как базовая подсистема балансировки нагрузки должна быть удалена до создания новой Load Balancer (цен. категория , время простоя приложения будет. Узнайте , сколько времени занимает обновление?
Будет ли модуль перенести внешний IP-адрес в новую Load Balancer (цен. категория ?
Да, для общедоступных и внутренних подсистем балансировки нагрузки модуль гарантирует, что ip-адреса переднего плана поддерживаются. Для общедоступных IP-адресов IP-адрес преобразуется в статический IP-адрес перед миграцией. Для внутренних внешних интерфейсов модуль пытается переназначить тот же IP-адрес, освобожденный при удалении Базовой подсистемы балансировки нагрузки. Если частный IP-адрес недоступен скрипту (см. раздел "Что произойдет, если обновление завершается сбоем середины миграции?").
Сколько времени занимает обновление?
Обновление обычно занимает несколько минут, чтобы скрипт завершился. Следующие факторы могут привести к более длительному времени обновления:
- Сложность конфигурации подсистемы балансировки нагрузки
- Количество членов внутреннего пула
- Количество экземпляров связанных Масштабируемые наборы виртуальных машин или Виртуальные машины f
- Кластер Service Fabric: обновление кластеров Service Fabric занимает около часа при тестировании.
Учитывайте время простоя и при необходимости запланируйте отработку отказа.
Переносит ли скрипт члены внутреннего пула из моего базового подсистемы балансировки нагрузки в только что созданный Load Balancer (цен. категория ?
Да. Скрипт Azure PowerShell переносит Масштабируемые наборы виртуальных машин и Виртуальные машины в только что созданные серверные пулы Load Balancer (цен. категория .
Какие компоненты подсистемы балансировки нагрузки переносятся?
Скрипт переносит следующий код из Базовой подсистемы балансировки нагрузки в Load Balancer (цен. категория :
Общедоступные и частные подсистемы балансировки нагрузки:
- Пробы работоспособности:
- Все пробы переносятся в новую Load Balancer (цен. категория
- Правила балансировки нагрузки:
- Все правила балансировки нагрузки переносятся в новую Load Balancer (цен. категория
- Правила NAT для входящего трафика:
- Все созданные пользователем правила NAT переносятся в новую Load Balancer (цен. категория
- Входящие пулы NAT:
- По умолчанию пулы NAT обновляются до правил NAT
- Чтобы перенести пулы NAT, укажите
-skipUpgradeNATPoolsToNATRules
параметр при обновлении
- Серверные пулы:
- Все серверные пулы переносятся в новую Load Balancer (цен. категория
- Все масштабируемые наборы виртуальных машин и сетевые интерфейсы виртуальных машин и IP-конфигурации переносятся в новые Load Balancer (цен. категория
- Если масштабируемый набор виртуальных машин использует политику последовательного обновления, скрипт обновит политику обновления масштабируемого набора виртуальных машин до "Вручную" во время процесса миграции и вернется к "Rolling" после завершения миграции.
- Общедоступные IP-адреса уровня экземпляра
- Для Виртуальные машины и Масштабируемые наборы виртуальных машин преобразует присоединенные общедоступные IP-адреса из уровня "Базовый" в номер SKU "Стандартный". Обратите внимание, что общедоступные IP-адреса экземпляра масштабируемого набора изменяются во время обновления; IP-адреса виртуальных машин не выполняются.
- Теги из базовой подсистемы балансировки нагрузки в Load Balancer (цен. категория
Общедоступная подсистема балансировки нагрузки:
- Общедоступная IP-конфигурация внешнего интерфейса
- Преобразует общедоступный IP-адрес в статический IP-адрес, если динамический
- Обновляет номер SKU общедоступного IP-адреса до уровня "Стандартный", если "Базовый"
- Обновление всех связанных общедоступных IP-адресов до новой Load Balancer (цен. категория
- Правила исходящего трафика:
- Базовые подсистемы балансировки нагрузки не поддерживают настроенные правила исходящего трафика. Скрипт создает правило исходящего трафика в подсистеме балансировки нагрузки уровня "Стандартный", чтобы сохранить исходящее поведение подсистемы балансировки нагрузки Basic. Дополнительные сведения о правилах для исходящего трафика см. в этой статье.
- Группа безопасности сети
- Базовая подсистема балансировки нагрузки не требует группы безопасности сети, чтобы разрешить исходящее подключение. Если нет группы безопасности сети, связанной с масштабируемым набором виртуальных машин, создается новая группа безопасности сети для сохранения той же функциональности. Эта новая группа безопасности сети связана с сетевыми интерфейсами членов внутреннего пула масштабируемого набора виртуальных машин. Он позволяет использовать одни и те же порты и протоколы балансировки нагрузки и сохранять исходящее подключение.
Внутренняя подсистема балансировки нагрузки:
- Конфигурация частных интерфейсных IP-адресов
Примечание.
Группы безопасности сети не настроены в рамках обновления внутренней подсистемы балансировки нагрузки. Дополнительные сведения о группах безопасности сети см. в разделе "Группы безопасности сети"
Разделы справки миграции, когда члены внутреннего пула принадлежат нескольким подсистемам балансировки нагрузки?
В сценарии, когда члены внутреннего пула также являются членами внутренних пулов в другой подсистеме балансировки нагрузки, например при наличии внутренних и внешних подсистем балансировки нагрузки для одного приложения, необходимо перенести базовые подсистемы балансировки нагрузки одновременно. Попытка перенести подсистемы балансировки нагрузки одновременно попытается смешать ресурсы SKU уровня "Базовый" и "Стандартный", что не допускается. Сценарий миграции поддерживает это путем передачи нескольких базовых подсистем балансировки нагрузки в одно и то же выполнение скрипта -MultiLBConfig
с помощью параметра.
Разделы справки проверить успешность миграции?
В конце выполнения модуль обновления выполняет следующие проверки, сравнивая Базовую подсистему балансировки нагрузки с новым Load Balancer (цен. категория . При неудачной миграции эта же операция может вызываться с помощью -validateCompletedMigration
параметров и -basicLoadBalancerStatePath
определения состояния конфигурации Load Balancer (цен. категория (если он был создан). Файл журнала, созданный во время миграции, также содержит подробные сведения об операции миграции и любых ошибках.
- Существует Load Balancer (цен. категория , а его номер SKU — "Стандартный"
- Количество конфигураций IP-адресов переднего плана совпадает и что IP-адреса совпадают.
- Количество внутренних пулов и их членства
- Количество совпадений правил балансировки нагрузки
- Количество совпадений проб работоспособности
- Количество совпадений правил NAT для входящего трафика
- Количество совпадений пулов NAT для входящих подключений
- Внешние Load Balancer (цен. категория имеют настроенное правило исходящего трафика
- Внешние Load Balancer (цен. категория члены внутреннего пула связаны с группами безопасности сети
Как настроить исходящий трафик для подсистемы балансировки нагрузки?
Подсистемы балансировки нагрузки SKU уровня "Стандартный" не разрешают исходящий доступ по умолчанию для членов внутреннего пула. Разрешение исходящего доступа к Интернету требует дополнительных шагов.
Для внешних подсистем балансировки нагрузки можно использовать правила исходящего трафика для явного включения исходящего трафика для членов пула. Если у вас есть один внутренний пул, мы автоматически настраиваем правило исходящего трафика для вас во время миграции; Если у вас несколько серверных пулов, необходимо вручную создать правила исходящего трафика, чтобы указать выделение портов.
Для внутренних подсистем балансировки нагрузки правила исходящего трафика не являются вариантом, так как через SNAT нет общедоступного IP-адреса. Это оставляет несколько вариантов, чтобы рассмотреть следующее:
- Шлюз NAT. Шлюзы NAT — это рекомендуемый подход Azure для исходящего трафика в большинстве случаев. Однако шлюзы NAT требуют, чтобы присоединенная подсеть не имеет основных сетевых ресурсов SKU, то есть вам потребуется перенести все подсистемы балансировки нагрузки и общедоступные IP-адреса, прежде чем использовать их. По этой причине мы рекомендуем использовать двухэтапный подход, в котором сначала используется один из следующих подходов для исходящего подключения, а затем переключитесь на шлюзы NAT после завершения базовой миграции SKU.
- Сетевое виртуальное устройство: маршрутизация трафика через сетевое виртуальное устройство, например Брандмауэр Azure, который, в свою очередь, перенаправит трафик в Интернет. Этот вариант идеально подходит, если у вас уже настроен сетевой виртуальный модуль.
- Вторичный внешний подсистема балансировки нагрузки. Добавив дополнительный внешний балансировщик нагрузки в внутренние ресурсы, можно использовать внешнюю подсистему балансировки нагрузки для исходящего трафика, настроив правила исходящего трафика. Если этот внешний подсистема балансировки нагрузки не имеет правил балансировки нагрузки, правил NAT или пулов NAT для входящих подключений, серверные ресурсы останутся изолированными для внутренней сети для конфигурации подсистемы балансировки нагрузки только для исходящего трафика. С помощью этого параметра внешний балансировщик нагрузки можно настроить до миграции с базового на стандартный номер SKU и переноситься одновременно с внутренним балансировщиком нагрузки с помощью
-MultiLBConfig
параметра. - Общедоступные IP-адреса. Наконец, общедоступные IP-адреса можно добавлять непосредственно в экземпляры Виртуальные машины или масштабируемого набора виртуальных машин. Однако этот параметр не рекомендуется из-за дополнительной области безопасности и расходов на добавление общедоступных IP-адресов.
Что произойдет, если обновление завершается сбоем в середине миграции?
Модуль предназначен для размещения сбоев из-за необработанных ошибок или неожиданного завершения скрипта. Проект сбоя — это подход вперед, где вместо попытки вернуться к базовой подсистеме балансировки нагрузки необходимо исправить проблему, вызвав ошибку (см. выходные данные ошибки или файл журнала), а затем повторить миграцию, указав -FailedMigrationRetryFilePathLB <BasicLoadBalancerBackupFilePath> -FailedMigrationRetryFilePathVMSS <VMSSBackupFile>
параметры. Для общедоступных подсистем балансировки нагрузки, так как номер SKU общедоступного IP-адреса был обновлен до уровня "Стандартный", перемещение того же IP-адреса обратно в базовую подсистему балансировки нагрузки не будет возможным.
Просмотрите видео процесса восстановления:
Если сбой миграции был направлен на несколько подсистем балансировки нагрузки одновременно, используя -MultiLBConfig
параметр, восстановите каждый балансировщик нагрузки по отдельности, используя тот же процесс, что и ниже.
Базовая процедура восстановления сбоев:
- Устранение причины сбоя миграции. Проверьте файл
Start-AzBasicLoadBalancerUpgrade.log
журнала для получения сведений - Удалите новую Load Balancer (цен. категория (если она создана). В зависимости от того, какой этап миграции произошел сбой, может потребоваться удалить ссылку Load Balancer (цен. категория из масштабируемого набора виртуальных машин или сетевых интерфейсов виртуальных машин (IP-конфигураций) и проб работоспособности, чтобы удалить Load Balancer (цен. категория .
- Найдите файл резервного копирования состояния Load Balancer уровня "Базовый". Этот файл будет находиться в каталоге, в котором был выполнен скрипт, или по пути, указанному параметром
-RecoveryBackupPath
во время неудачного выполнения. Файл называется:State_<basicLBName>_<basicLBRGName>_<timestamp>.json
- Повторное выполнение скрипта миграции, указание
-FailedMigrationRetryFilePathLB <BasicLoadBalancerbackupFilePath>
параметров и-FailedMigrationRetryFilePathVMSS <VMSSBackupFile>
(для серверной части масштабируемого набора виртуальных машин) вместо -BasicLoadBalancerName или передачи базовой подсистемы балансировки нагрузки через конвейер