標籤:
如果需要對一個雲端服務下的不同虛擬機器實現負載平衡,可以將Public Port的訊息通過負載平衡轉寄到每個VM,從而實現請求的自動負載平衡。
具體拓撲如下:
650) this.width=650;" title="clip_image001" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image001" src="http://s3.51cto.com/wyfs02/M02/82/08/wKiom1dIA4exWwtUAAElH3htybA643.png" height="287" />
我們可以對之前建立的這兩台虛擬機器,設定80連接埠的負載平衡。
650) this.width=650;" title="clip_image002" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image002" src="http://s3.51cto.com/wyfs02/M01/82/08/wKiom1dIA4ixWZRdAABlC7qTE24885.png" height="334" />
注意:Azure的負載平衡目前只支援四層,不能保留Session。
負載平衡的演算法是Azure設定好的,不能修改。演算法主要依賴於五元組(source IP, source port, destination IP, destination port, protocol type)。
Azure虛擬機器在預設情況下,只開啟了RDP的連接埠和PowerShell的連接埠,其他的連接埠都是關閉的。
我們為了測試,安裝並開啟2台虛擬機器的web服務,並添加80連接埠的終結點。
650) this.width=650;" title="clip_image003" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image003" src="http://s3.51cto.com/wyfs02/M00/82/07/wKioL1dIBIDxzWbhAACi1IuWPsM049.png" height="567" />
安裝web服務,第二台略
650) this.width=650;" title="clip_image004" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image004" src="http://s3.51cto.com/wyfs02/M01/82/07/wKioL1dIBICD5isoAAAkVXc-E7U155.png" height="160" />
測試第一台WEB服務,正常!
650) this.width=650;" title="clip_image005" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image005" src="http://s3.51cto.com/wyfs02/M02/82/07/wKioL1dIBICDQAzzAAAlD6zB53w339.png" height="180" />
第二台web伺服器。
(注意:為了區分效果,2台web網頁內容設定為不一樣,實際情況下應該相同)
首先在第一台虛擬機器上添加終結點,並建立負載平衡群集
650) this.width=650;" title="clip_image006" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image006" src="http://s3.51cto.com/wyfs02/M00/82/07/wKioL1dIBIHxEDfVAAExgZ5go14627.png" height="494" />
點擊“添加”
650) this.width=650;" title="clip_image007" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image007" src="http://s3.51cto.com/wyfs02/M01/82/07/wKioL1dIBIKCVNV8AAEfidb3Zic851.png" height="494" />
添加獨立終結點
650) this.width=650;" title="clip_image008" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image008" src="http://s3.51cto.com/wyfs02/M02/82/08/wKiom1dIA4uwFU50AAEtWd9VEeE941.png" height="494" />
指定終結點名稱“HTTP”,協議TCP,公用連接埠80,私人連接埠80,勾選“建立Server Load Balancer群集”
650) this.width=650;" title="clip_image009" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image009" src="http://s3.51cto.com/wyfs02/M02/82/08/wKiom1dIA43D6XkFAAErQ6eIvWw046.png" height="494" />
設定Server Load Balancer群集名稱NLB-HTTP,探測協議TCP,探測連接埠及間隔,保持預設
650) this.width=650;" title="clip_image010" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image010" src="http://s3.51cto.com/wyfs02/M02/82/07/wKioL1dIBISy3gE9AACyNcwvpi8293.png" height="259" />
第一台虛擬機器終結點建立完成,
切換到第二台虛擬機器
650) this.width=650;" title="clip_image011" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image011" src="http://s3.51cto.com/wyfs02/M00/82/08/wKiom1dIA47y7KYRAADAWLUGKjA882.png" height="238" />
終結點頁面
650) this.width=650;" title="clip_image012" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image012" src="http://s3.51cto.com/wyfs02/M01/82/08/wKiom1dIA47Spcj-AAEQRmkLa0s324.png" height="612" />
添加
650) this.width=650;" title="clip_image013" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image013" src="http://s3.51cto.com/wyfs02/M01/82/08/wKiom1dIA4_BBpxhAAEi2WiFTIQ071.png" height="494" />
選擇將終結點添加到Server Load Balancer群集“NLB-HTTP”
650) this.width=650;" title="clip_image014" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image014" src="http://s3.51cto.com/wyfs02/M01/82/07/wKioL1dIBIfAr2ItAAE3O0tQc2c969.png" height="494" />
設定終結點名稱HTTP,其餘預設
650) this.width=650;" title="clip_image015" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image015" src="http://s3.51cto.com/wyfs02/M02/82/08/wKiom1dIA5Hh_3ALAADPohuxQPs811.png" height="258" />
第2台虛擬機器終結點添加完成。
下面開始測試
找一台本機電腦,我們使用2個瀏覽器chrome和IE,類比2個使用者訪問,效果如下:
IE
650) this.width=650;" title="clip_image016" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image016" src="http://s3.51cto.com/wyfs02/M02/82/07/wKioL1dIBIixJerUAAArpe90kr0624.png" height="167" />
chrome
650) this.width=650;" title="clip_image017" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image017" src="http://s3.51cto.com/wyfs02/M00/82/08/wKiom1dIA5KAbjIeAABCsHMFJXw462.png" height="136" />
測試完成。
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/
650) this.width=650;" title="clip_image018" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image018" src="http://s3.51cto.com/wyfs02/M01/82/07/wKioL1dIBImB64qvAACDDHLHPKc210.png" height="222" />
最新的Azure Load Balancer可以將規則進行修改,改為2要素,(Source IP,Destination IP)或3要素(Source IP, Destination IP, Protocol)。這樣由同一個用戶端發起的請求,會指向同一個Azure目標伺服器。通過這種方式,就可以保留Session。如所示:
650) this.width=650;" title="clip_image019" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image019" src="http://s3.51cto.com/wyfs02/M02/82/07/wKioL1dIBIrBIFpYAACBtr3FZ18477.png" height="231" />
Microsoft Azure系列之九 實現基於Iaas雲端服務的虛機Server Load Balancer