我一直在爭取與Azure的負載平衡器這個問題了幾天,現在還在拉我的頭髮... :(Azure的外部負載平衡器 - 添加LB規則使用PowerShell
首先,我能夠使用登錄到Azure的沒有問題:
Login-AzureRmAccount
所以,這裏的情況是:
外部負載平衡器 多個前端具有獨特的公共IP地址池 多個後端池具有獨特的私法吃IP地址(與VM的在池) 前端和後端池匹配1:1 LBRule1 - FrontEndPool - > BackEndPool端口80上前端和後端 LBRule1 - FrontEndPool - > BackEndPool端口443上前端和後端
現在,當試圖添加80/443另一個LBRule時,我不能,因爲它已被使用。與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
這做同樣的事,什麼都沒有。沒有錯誤,沒有。
任何人都能看到我失蹤的東西?