Azure IaaS云服务对应多个VIP

网友投稿 220 2022-10-17

Azure IaaS云服务对应多个VIP

本文将介绍中国区Windows Azure Cloud Service可以启用多个虚拟IP的功能。

【Part.1】应用场景:

(1)同一个云服务下有多个SSL Website VM,为了能给每个VM分配443端口,需要配置多VIP。

(2)SQL AlwaysOn:Another scenario for the use themultiple VIPs is hosting multiple SQL AlwaysOn availability group listeners onthe same set of Virtual Machines.

【Part.2】配置方法:仅能通过Azure Powershell配置,参考脚本如下:

#为云服务增加VIP

$Servicename="winhe" #定义云服务名字

$VIPname="Vip-01"  #定义新增的VIP的名字

Add-AzureVirtualIP -VirtualIPName $VIPname -ServiceName$Servicename  #执行增加命令

#获取一下增加后的VIP状态,发现只有名字Vip-01,并无VIP生成

$deployment= Get-AzureDeployment -ServiceName winhe

$deployment.VirtualIPs

#对Vip-01添加端口映射:虚拟机win2012mem,内网80--外网80

$Servicename="winhe" #定义云服务名字

$VMname="win2012mem" #定义虚拟机名字

$VM=Get-AzureVM -ServiceName $Servicename -Name $VMname #定义VM变量

$endpointname="vip-01-#终结点名字

$Protocol="tcp" #协议类型

$Localport="80" #私有端口

$Publicport="80" #公共端口

$VIPname="Vip-01"  #VIP的名字

Add-AzureEndpoint-VM $VM -Name $endpointname -Protocol $Protocol -LocalPort $Localport-PublicPort $Publicport -VirtualIPName $VIPname | Update-AzureVM

#再次使用以下命令获取以便VIP状态,可见获取了Vip-01的VIP地址

$deployment= Get-AzureDeployment -ServiceName winhe

$deployment.VirtualIPs

由于映射已经做好,那么通过139.217.22.239:80就可以访问虚拟机win2012mem的网站了。

winhe.chinacloudapp.cn对应 139.217.19.59 对应虚拟机win-2012的网站

这样就实现了一个云服务winhe有一个原装VIP(139.217.19.59),又配置了一个多VIP(139.217.22.239)都可以实现映射到后端的VM。

【补充命令】:

#获取指定虚拟机的所有端点

$Servicename="winhe" #定义云服务名字

$VMname="win2012mem" #定义虚拟机名字

$VM=Get-AzureVM -ServiceName $Servicename -Name $VMname #定义VM变量

Get-AzureEndpoint-VM $VM

#删除某一个VIP对应的端点

$Servicename="winhe" #定义云服务名字

$VMname="win2012mem" #定义虚拟机名字

$VM=Get-AzureVM -ServiceName $Servicename -Name $VMname #定义VM变量

$endpointname="vip-01-#即将删除的端点名字,一个云服务下端点名字是唯一的

Remove-AzureEndpoint-VM $VM -Name $endpointname | Update-AzureVM

#删除多VIP

$Servicename="winhe" #定义云服务名字

$VIP="Vip-01"  #即将删除的VIP的名字

Remove-AzureVirtualIP-VirtualIPName $VIP -ServiceName $Servicename

【Part.3】Azure Powershell 配置负载平衡

当你配置完多VIP功能后,就无法在管理门户上操作以配置Endpoint了:

那么如何使用AzurePowershell配置基于端点的负载平衡呢?

基于Part.2的实验,我的VM:win-2012和win2012mem在云服务winhe下,

默认的VIP是 win-2012ContractContract:139.217.19.59

新增的VIP是Vip-01:139.217.22.239

由于要使用两台VM的80端口,所以需要删除Vip-01原先设定好的80端口映射,一旦这个唯一的映射移除,139.217.22.239就被释放了,所再次验证负载平衡是需要重新查看IP。我们会在Part.4介绍如何固定这些VIP。

对Vip-01配置基于80端口的负载平衡,后端服务器分别是win-2012和win2012mem,参考脚本如下:

Get-AzureVM-ServiceName winhe -Name win-2012 `

|Add-AzureEndpoint -Name myEndpoint -LoadBalancedEndpointSetName myLBSet `

-Protocol tcp -LocalPort 80 -PublicPort 80-VirtualIPName Vip-01  -DefaultProbe `

|Update-AzureVM

Get-AzureVM-ServiceName winhe -Name win2012mem `

|Add-AzureEndpoint -Name myEndpoint -LoadBalancedEndpointSetName myLBSet `

-Protocol tcp -LocalPort 80 -PublicPort 80-VirtualIPName Vip-01  -DefaultProbe `

|Update-AzureVM

#获取一下增加后的VIP状态,发现只有名字Vip-01变成了139.217.26.194

$deployment= Get-AzureDeployment -ServiceName winhe

$deployment.VirtualIPs

Vip-01(139.217.26.194)的80端口实现了负载平衡,效果如下:

【Part.4】固定VIP

#固定Vip-01

New-AzureReservedIP-ReservedIPName winherip-vip01 -Location "China North" -ServiceNamewinhe -VirtualIPName Vip-01

#固定默认VIP

New-AzureReservedIP-ReservedIPName winherip-win-2012Contract -Location "China North"-ServiceName winhe -VirtualIPName win-2012ContractContract

#也可以使用Get-AzureReservedIP验证是否固定成功

Get-AzureReservedIP| Where-Object Servicename -eq winhe

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 由浅入深带你掌握图的遍历
下一篇:云服务概念解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~