Azure IaaS雲服務對應多個VIP

本文將介紹中國區Windows Azure Cloud Service可以啓用多個虛擬IP的功能。


Part.1】應用場景:

1)同一個雲服務下有多個SSL Website VM,爲了能給每個VM分配443端口,需要配置多VIP

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


wKiom1bCxM2zyWN0AAF8GmnQ2EA043.png


Part.2】配置方法:僅能通過Azure Powershell配置,參考腳本如下:

#爲雲服務增加VIP

$Servicename="winhe" #定義雲服務名字

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

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

wKiom1bCxM2h97-KAAAeUVY5Mk4559.png

 

#獲取一下增加後的VIP狀態,發現只有名字Vip-01,並無VIP生成

$deployment= Get-AzureDeployment -ServiceName winhe

$deployment.VirtualIPs  

wKioL1bCxTCwSszCAAAh_rWUFCw503.png

 

#Vip-01添加端口映射:虛擬機win2012mem,內網80--外網80

$Servicename="winhe" #定義雲服務名字

$VMname="win2012mem" #定義虛擬機名字

$VM=Get-AzureVM -ServiceName $Servicename -Name $VMname #定義VM變量

$endpointname="vip-01-http" #終結點名字

$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

wKioL1bCxTDSOqtYAAAdQ9x54io821.png

 

#再次使用以下命令獲取以便VIP狀態,可見獲取了Vip-01VIP地址

$deployment= Get-AzureDeployment -ServiceName winhe

$deployment.VirtualIPs  

wKiom1bCxM7BZho7AAAj5Fqg2T0676.png

 

由於映射已經做好,那麼通過139.217.22.239:80就可以訪問虛擬機win2012mem的網站了。

wKiom1bCxM6DOElcAADagmnMEKY478.png

 

winhe.chinacloudapp.cn對應 139.217.19.59 對應虛擬機win-2012的網站

wKioL1bCxTHyVX1PAABO3L2KpH4878.png

 

這樣就實現了一個雲服務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-http" #即將刪除的端點名字,一個雲服務下端點名字是唯一的

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

 

#刪除多VIP

$Servicename="winhe" #定義雲服務名字

$VIP="Vip-01"  #即將刪除的VIP的名字

Remove-AzureVirtualIP-VirtualIPName $VIP -ServiceName $Servicename 

 

Part.3Azure Powershell 配置負載平衡

 

當你配置完多VIP功能後,就無法在管理門戶上操作以配置Endpoint了:

wKioL1bCxTLTSxblAAAzCUo8IPQ908.png

 

那麼如何使用AzurePowershell配置基於端點的負載平衡呢?

 

基於Part.2的實驗,我的VMwin-2012win2012mem在雲服務winhe下,

默認的VIP win-2012ContractContract139.217.19.59

新增的VIPVip-01139.217.22.239

 

由於要使用兩臺VM80端口,所以需要刪除Vip-01原先設定好的80端口映射,一旦這個唯一的映射移除,139.217.22.239就被釋放了,所再次驗證負載平衡是需要重新查看IP。我們會在Part.4介紹如何固定這些VIP

 

Vip-01配置基於80端口的負載平衡,後端服務器分別是win-2012win2012mem,參考腳本如下:

 

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

wKiom1bCxNCgbWMnAAAsRmdP0u8746.png

 

#獲取一下增加後的VIP狀態,發現只有名字Vip-01變成了139.217.26.194

$deployment= Get-AzureDeployment -ServiceName winhe

$deployment.VirtualIPs  

wKioL1bCxTPTc-dQAAAkAY8jyDs322.png

 

Vip-01(139.217.26.194)80端口實現了負載平衡,效果如下:

wKiom1bCxNGSD01KAABAAUs1MBc997.png

 

wKiom1bCxNHwxhoVAABO_JQBJls888.png

 

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

 

wKioL1bCxTThFt5XAAAsLuvlGdM426.png

 

#也可以使用Get-AzureReservedIP驗證是否固定成功

Get-AzureReservedIP| Where-Object Servicename -eq winhe

wKiom1bCxNKjHZ0qAACAqe3GPw0096.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章