博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Azure PowerShell (8) 使用PowerShell设置Azure负载均衡器规则
阅读量:6262 次
发布时间:2019-06-22

本文共 1825 字,大约阅读时间需要 6 分钟。

  《》

 

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

 

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

 

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

  参考资料:

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

  

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

 

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

  

  

  准备工作:请读者参考,在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)

 

 

  如果要改回默认的负载均衡器规则,请设置LoadBalancerDistribution为none

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

  

 

  参考资料:

 

本文转自Lei Zhang博客园博客,原文链接:http://www.cnblogs.com/threestone/p/4378472.html,如需转载请自行联系原作者

你可能感兴趣的文章
JAVA IO BIO NIO AIO
查看>>
使用iview的组件 Table 表格,有固定列,设置其中一个列适应屏幕大小
查看>>
Vue学习笔记1
查看>>
用户输入一个网址到页面展示内容的这段时间内,浏览器和服务器都发生了生么事情?...
查看>>
动手搞一个Promise
查看>>
[case32]alibaba限流组件Sentinel实战
查看>>
用python来给图片加水印
查看>>
【跃迁之路】【550天】程序员高效学习方法论探索系列(实验阶段307-2018.08.09)...
查看>>
link和@import的区别浅析
查看>>
vscode 相关
查看>>
nodejs 全自动使用 Tinypng (免费版,无需任何配置)压缩图片
查看>>
彻底理解Java中的基本数据类型转换(自动、强制、提升)
查看>>
在CentOS中安装redis5.0
查看>>
重构-改善既有代码的设计(六)--重新组织函数
查看>>
panic: time: missing Location in call to Time.In
查看>>
在K8S集群中一步步构建一个复杂的MySQL数据库
查看>>
前端每日实战:15# 视频演示如何用纯 CSS 创作条形图,不用任何图表库
查看>>
浅谈 Angular 项目实战
查看>>
初学Linux指导(三)
查看>>
C++入门教程(8):if 语句
查看>>