Я боролся с этой проблемой с помощью балансировщиков нагрузки Azure уже пару дней и все еще рву на себе волосы... :(
Во-первых, я могу без проблем войти в Azure, используя:
Login-AzureRmAccount
Итак, вот ситуация:
Внешний балансировщик нагрузки Несколько интерфейсных пулов с уникальными общедоступными IP-адресами Несколько внутренних пулов с уникальными частными 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
Это делает то же самое, ничего. Ни ошибок, ничего.
Кто-нибудь может увидеть, что мне не хватает?