Azure PowerShell (8) 使用PowerShell设置Azure负载均衡器规则

  《Windows Azure Platform 系列文章目录

 

  注意:如果Azure面对的客户只是企业级客户,企业级客户使用NAT设备访问Internet的话,因为多个客户端使用相同的Source IP地址,会造成单台服务器压力过大的情况。

 

  这个功能已经出来一段时间了,笔者在这里做一下小记。

 

  熟悉Azure平台的读者都知道,Azure Load Balancer(负载均衡器)的规则,是由五要素组成source IP, source port, destination IP, destination port, protocol type。

  参考资料:http://azure.microsoft.com/blog/2014/04/08/microsoft-azure-load-balancing-services/

  这样Azure Load Balancer可以保证绝对的负载均衡,如下图:

  技术分享

  但是这样的负载均衡器会有缺陷,当企业用户的应用程序需要保留会话(Session)的时候,不得不要修改应用程序代码,将Session保存到SQL Server或者In-Role Cache中去。

 

  最新的Azure Load Balancer可以将规则进行修改,改为2要素(Source IP,Destination IP)或3要素(Source IP, Destination IP, Protocol)。这样由同一个客户端发起的请求,会指向同一个Azure目标服务器。通过这种方式,就可以保留Session。如下图所示:

  技术分享

  

  准备工作:请读者参考[New Portal]Windows Azure Virtual Machine (9) Virtual Machine高可用与自动负载均衡(下),在Azure创建如下内容:

-  创建2台Windows Server 2012 VM,命名为LeiZhangVMOne和LeiZhangVMTwo

-  创建DNS Name为LeiZhangVM

-  负载均衡设置Public Port为80端口,Private Port为80端口,负载均衡器为LB_80

 

  1.查看80端口的默认Endpoint规则

  我们执行以下代码:

Get-AzureVM –ServiceName LeiZhangVM –Name LeiZhangVMOne | Get-AzureEndpoint

  可以查看到

  技术分享

  上图中,我们看到LoadBalancerDistribution属性为空。使用默认的规则,为五要素:source IP, source port, destination IP, destination port, protocol type

 

  2.重新设置Azure Load Balancer规则为sourceIP

  然后我们执行以下的代码:

Set-AzureLoadBalancedEndpoint -ServiceName LeiZhangVM -LBSetName LB_80 -Protocol tcp -LocalPort 80 -ProbeProtocolTCP -ProbePort 80 –LoadBalancerDistribution sourceIP

  查看执行结果,如下图:

  技术分享

 

  3.查看更新后的Load Balancer规则

  我们重新执行以下PS代码:

Get-AzureVM –ServiceName LeiZhangVM –Name LeiZhangVMOne | Get-AzureEndpoint

  查看与图1中的区别,如下图红色部分

  技术分享

  可以看到,相比图1,上图中LoadBalancerDistribution属性为sourceIP,这样就完成配置Load Balancer的2要素(Source IP,Destination IP)

 

 

  

 

  参考资料:http://azure.microsoft.com/blog/2014/10/30/azure-load-balancer-new-distribution-mode/

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。