0

Я боролся этот вопрос с Azure Балансировщиках Нагрузки на пару дней, и теперь я по-прежнему тянет меня за волосы ... :(Azure Внешний балансировки нагрузки - Добавление LB правил с помощью PowerShell

Во-первых, я могу войти в Azure без проблем с помощью:

Login-AzureRmAccount 

Итак, вот ситуация:

Внешних нагрузки Балансировщика Множественных Front-End бассейнов с уникальной общественной IP-адреса Множественных Back-End бассейнов с уникальным Priv поел IP-адреса (с ВМ в бассейнах) Передняя и задняя торцевые бассейны соответствуют 1: 1 LBRule1 - FrontEndPool -> BackEndPool порт 80 на передней и задней части LBRule1 - FrontEndPool -> BackEndPool порт 443 на передней и задней части

Теперь, пытаясь добавить еще один LBRule с 80/443, я не могу, потому что он уже используется. Говоря о поддержке Microsoft, это можно сделать только через Powershell (я включил/отключил плавающий IP-адрес).

Вот мой сценарий:

# Variables 
$rg='ResourceGroupName' 
$location='west us' 
$lb=Get-AzureRmLoadBalancer -Name LBName -ResourceGroupName $rg 
$FEConfig=get-AzureRmLoadBalancerFrontendIpConfig -Name FEPoolName -LoadBalancer $lb 
$fec=Get-AzureRmLoadBalancerFrontendIpConfig -Name $FEConfig.Name -LoadBalancer $lb 
$BEPool=Get-AzureRmLoadBalancerBackendAddressPoolConfig -Name BEPoolName -LoadBalancer $lb 
$BEP=Get-AzureRmLoadBalancerBackendAddressPoolConfig -Name $BEPool.Name -LoadBalancer $lb 
$Probe=Get-AzureRmLoadBalancerProbeConfig -Name HTTP-80 -LoadBalancer $lb 
$Probe1=Get-AzureRmLoadBalancerProbeConfig -Name HTTPS-443 -LoadBalancer $lb 
$LBRule1=New-AzureRmLoadBalancerRuleConfig -Name APP-HTTP80 -FrontendIpConfigurationId $fec.Id -BackendAddressPoolId $BEP.Id -ProbeId $Probe.Id -Protocol Tcp -FrontendPort 80 -BackendPort 80 -EnableFloatingIP 
$LBRule2=New-AzureRmLoadBalancerRuleConfig -Name APP-HTTP443 -FrontendIpConfigurationId $fec.Id -BackendAddressPoolId $BEP.Id -ProbeId $Probe.Id -Protocol Tcp -FrontendPort 443 -BackendPort 443 -EnableFloatingIP 

# Command 
$lb.LoadBalancingRules.Add($LBRule1) 
$lb.LoadBalancingRules.Add($LBRule2) 

Теперь, когда я запускаю это, ничего не происходит. Если вы используете Powershell ISE для игры с этим, вы увидите, что переменные вернутся с правильной информацией, но, глядя в диспетчер ресурсов, новый пул не создается.

Итак, я сделал некоторые исследования и с использованием того же набора переменных выше, я ставлю это вместе:

New-AzureRmLoadBalancerRuleConfig -Name $FEConfig.Name -FrontendIpConfigurationId $fec.Id -BackendAddressPoolId $BEP.Id -ProbeId $Probe.Id -Protocol Tcp -FrontendPort 80 -BackendPort 80 -EnableFloatingIP 

Это делает то же самое, ничего. Нет ошибок, ничего.

Любой, кто может видеть то, что мне не хватает?

ответ

1

Хорошо, не знаю, почему это имеет значение, но я исправил его (я думаю, мне нужно было снять и поставить вопрос). Несмотря на это, я надеюсь, что это помогает кто-то еще, что в ситуации:

Добавьте следующую строку в конце сценария:

$Set=Set-AzureRmLoadBalancer -LoadBalancer $lb 

Так что все это будет выглядеть следующим образом:

# Variables 
$rg='ResourceGroupName' 
$location='west us' 
$lb=Get-AzureRmLoadBalancer -Name LBName -ResourceGroupName $rg 
$FEConfig=get-AzureRmLoadBalancerFrontendIpConfig -Name FEPoolName -LoadBalancer $lb 
$fec=Get-AzureRmLoadBalancerFrontendIpConfig -Name $FEConfig.Name -LoadBalancer $lb 
$BEPool=Get-AzureRmLoadBalancerBackendAddressPoolConfig -Name BEPoolName -LoadBalancer $lb 
$BEP=Get-AzureRmLoadBalancerBackendAddressPoolConfig -Name $BEPool.Name -LoadBalancer $lb 
$Probe=Get-AzureRmLoadBalancerProbeConfig -Name HTTP-80 -LoadBalancer $lb 
$Probe1=Get-AzureRmLoadBalancerProbeConfig -Name HTTPS-443 -LoadBalancer $lb 
$LBRule1=New-AzureRmLoadBalancerRuleConfig -Name APP-HTTP80 -FrontendIpConfigurationId $fec.Id -BackendAddressPoolId $BEP.Id -ProbeId $Probe.Id -Protocol Tcp -FrontendPort 80 -BackendPort 80 -EnableFloatingIP 
$LBRule2=New-AzureRmLoadBalancerRuleConfig -Name APP-HTTP443 -FrontendIpConfigurationId $fec.Id -BackendAddressPoolId $BEP.Id -ProbeId $Probe.Id -Protocol Tcp -FrontendPort 443 -BackendPort 443 -EnableFloatingIP 

# Command 
$lb.LoadBalancingRules.Add($LBRule1) 
$lb.LoadBalancingRules.Add($LBRule2) 
$Set=Set-AzureRmLoadBalancer -LoadBalancer $lb 

Ну, я рад, что смог это решить, и надеюсь, что это поможет другим. : D