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要素sourceIP,(Source IP,Destination IP)或3要素sourceIPProtocol,(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 -ProbeProtocolTCP -ProbePort –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 -ProbeProtocolTCP -ProbePort –LoadBalancerDistribution 'none'
参考资料:http://azure.microsoft.com/blog/2014/10/30/azure-load-balancer-new-distribution-mode/
Azure PowerShell (8) 使用PowerShell设置Azure负载均衡器规则的更多相关文章
- Azure 自动化:使用PowerShell Credential连接到Azure
最近在中国版windows azure中新上线的自动化功能, 使用自动化,您可以导入自己的PowerShell脚本,然后设置一个运行计划使得脚本能按计划运行. 在本文中,我们来学习如何使用PowerS ...
- Azure 基础:使用 powershell 创建虚拟网络
什么是虚拟网络 虚拟网络是您的网络在 Azure 云上的表示形式.您可以完全控制虚拟网络的 IP 地址.DNS 的设置.安全策略和路由表.您还可以更进一步,把虚拟网络划分为多个子网.然后用它们连接您的 ...
- Azure 基础:用 PowerShell 自动登录
PowerShell 是管理 Azure 的最好方式,因为我们可以使用脚本把很多的工作自动化.比如把 Azure 上的虚拟机关机,并在适当的时间把它开机,这样我们就能节省一些开支,当然我们同时也为减少 ...
- 【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例
当需要通过代码的方式执行PowerShell脚本时,可以参考以下的示例. Azure SDK中提供了两个方法来执行PowerShell脚本 (SDK Source Code: https://gith ...
- 【Azure 环境】用 PowerShell 调用 AAD Token, 以及调用Azure REST API(如资源组列表)
问题描述 PowerShell 脚本调用Azure REST API, 但是所有的API都需要进行权限验证.要在请求的Header部分带上Authorization参数,并用来对List Resour ...
- Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP
<Windows Azure Platform 系列文章目录> 笔者在之前的工作中,有客户提出想一次性查看Azure订阅下的所有Azure VM的Public IP和Private IP. ...
- Azure 基础:使用 powershell 创建虚拟机
在进行与 azure 相关的自动化过程中,创建虚拟主机是避不开的操作.由于系统本身的复杂性,很难用一两条简单的命令完成虚拟主机的创建.所以专门写一篇文章来记录使用 PowerShell 在 azure ...
- 【Azure 应用服务】Azure Function App 执行PowerShell指令[Get-Azsubscription -TenantId $tenantID -DefaultProfile $cxt]错误
问题描述 使用PowerShell脚本执行获取Azure订阅列表的指令(Get-Azsubscription -TenantId $tenantID -DefaultProfile $cxt).在本地 ...
- 【Azure 应用服务】使用PowerShell脚本上传文件至App Service目录
问题描述 使用PowerShell脚本上传文件至App Service目录的示例 脚本示例 对文件进行上传,使用的 WebClient.UploadFile 方法进行上传.当文件夹中包含子目录,执行以 ...
随机推荐
- CentOS 7 安装后没有ifconfig命令
/bin,/sbin,/usr/bin,/usr/sbin下面都没有ifconfig命令. 执行命令 yum install net-tools 即可.
- Memo
1.Webpack: node_modules/css/index.js didn't return a function npm install css-loader style-loader ...
- nodejs+mysql 断线重连
var mysql = require('mysql'); var conn; function handleError () { conn = mysql.createConnection({ ho ...
- git 的基本使用
git 的使用步骤: 1. 新建一个文件夹,然后进入终端, 2. cd <文件夹路径> ——->进入当前目录: 2.psw ————>查看当前路径 3.git init ...
- ActiveMQ
前言 MQ--Message Queue,中文翻译为"消息队列",维基百科上的这样描述: 消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方 ...
- 动态SQL 学习
<select id="findUser" parameterType="Map" resultType="User"> ...
- Qtablevies获取内容
首先是向tableview中添加内容 model=new QStandardItemModel(); model->setHorizontalHeaderItem(, new QStandard ...
- 解决安装mysql的”A Windows service with the name MySQL already exists.“问题
如果以前安装过mysql,卸载重装,很可能会碰到"A Windows service with the name MySQL already exists."这样的提示.即服务已经 ...
- Delphi之静态方法,虚方法virtual,动态dynamic,抽象abstract,消息
Delphi之静态方法,虚方法virtual,动态dynamic,抽象abstract,消息 http://www.cnblogs.com/zhwx/archive/2012/08/28/266055 ...
- oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...