上節,咱們講到使用 Azure Traffic Manager 爲咱們的 Demo 項目提供負載均衡,以及流量轉發的功能。可是Azure 提供相似的功能的服務遠遠不止這一個,今天咱們就來說一下 Azure Load Balance ,經過它來實現負載均衡,流量轉發,以及分享一下 Azure Load Balance 的建立,和具體的配置。html
Azure Load Balance:是指在一組後端資源和服務器之間負載均衡的分配負載(傳入網絡流量)前端
Azure 負載均衡器在開放式系統互連 (OSI) 模型的第四層上運行。 它是客戶端的單一聯繫點。 負載均衡器將抵達負載均衡器前端的入站流量分配到後端池實例。 這些流取決於所配置的負載均衡規則和運行情況探測。 後端池實例能夠是 Azure 虛擬機,或虛擬機規模集中的實例。git
咱們今天演示的後端連接的是一組VM。github
--------------------我是分割線--------------------上架構圖web
--------------------我是分割線--------------------shell
Azure Web App 部署系列:數據庫
Azure Portal 點擊 「create a resource」windows
搜索框 輸入 "Load Balancer"後端
點擊 「Create」 進行建立。瀏覽器
咱們能夠看到,Load Balance 須要輸入一些參數,例如 類型,SKU,公共IP配置,是否使用IPV6 等
Resource group:點擊 Create new 輸入 「Web_Test_LB_RG」
Name:「lb_cnbateblogweb」
Type:「Public」
region 選擇 :「East Asia」
Public IP address Name:"cbbateblgweb_pub_ip"
剩下都是默認選項, 點擊 「Review + create」 進行預建立校驗
咱們能夠頁面上顯示 「Validation passed」,而後咱們點擊 「Create」 進行建立操做
稍等一下,咱們能夠在Azure Portal的通知欄看到 部署成功的提示信息,咱們能夠點擊 「Go to resource」 跳轉到資源
在建立VM 以前,咱們先建立網絡資源,好比,一個虛擬網絡,虛擬網絡中有個兩個子網
搜索框中搜索 「Virtual Network」,進行搜索
咱們點擊 「create」 ,進行建立 虛擬網絡 資源
Name:「CnBateBlogWeb_VNET」
Region 選擇:「East Asia」
點擊下一步,進行配置 「IP Addresses」 信息
IPv4 address space 配置咱們使用默認的 「10.1.0.0/16」
咱們點擊紅色圈圈部分 」default「,修改默認子網的配置信息。
咱們講默認的 subnet name 改爲 「CnBateBlogWeb01_SubNET」,Subnet address range 改成 「10.1.1.0/24」,點擊 「Save」 進行保存操做
操做完成後,咱們能夠在 IP 地址配置頁面能夠看到剛剛修改的以及新添加的子網的信息,確認無誤後,咱們點擊 「Review+create」 ,進行添加預校驗操做。
等待檢驗成功後,咱們能夠看到 驗證成功提示,而後咱們點擊 「Create」,進行建立,進行建立虛擬網絡以及子網的資源。
再次回到資源建立頁面,咱們開始建立 "Network security group(網絡安全組)" ,搜索框輸入 「Network security group」
點擊 「create」 按鈕進行建立
Resource group 選擇:"Web_Test_RG"
Name:「CnbateBlogWeb_NSG」
Region 選擇:「East Asia」
點擊 「Review + create」,進行預檢查
完成預校驗以後,咱們點擊 「create」 進行建立資源,建立完成後,咱們點擊 「Go to resource」
咱們在 CnBateBlogWeb_NSG 頁面須要配置入站規則,選擇 "Settings=>Inbound security rules",而後點擊 「Add」,進行添加操做
咱們計劃是使用 windows 服務器,因此遠程鏈接端口必須得打開,端口爲 「3389」,以下圖所示
而後我接着使用相同的方式也將 「80」 端口加到入站規則中,添加完成後,咱們也能夠看到本身剛剛添加完成的入站規則信息
接下來,咱們進行建立VM
仍是回到建立資源頁面,咱們選擇 「Windows Server 2016 Datacenter」(做爲演示,你們不要在乎服務器類型,以及服務器性能的問題),而且跳轉到配置頁面
咱們能夠看到,這麼咱們須要進行簡單的配置服務器的鏡像,所在區域,Size,以及遠程登陸所須要的服務器的用戶名以及密碼,以及須要開放的 3389 和 80 端口
Virtual machine name:「cnbateblogweb01」
Region:「East Asia」
UserName:「cnbateblogweb01」
Password:你們自行填寫
VM 的 size 的大小,咱們能夠點開看一下,我這邊懸着的是 1核1g大小的,也是我圖中圈起來的
磁盤方面,咱們使用默認,只是作演示用,不須要加數據盤,咱們點擊 「Next-Networking >」 ,進入下一步配置網絡信息
關於 「Virtual Network」 和 「subnet」 ,咱們能夠選擇剛剛建立好的
Virtual Network 選擇:"CnBateBlogWeb_VENT"
Subnet 選擇:「CbBateBlogWeb01_SubNET」
public ip 咱們使用默認,建立一個新的公共的IP
NIC network security group 選擇:"Advanced"
Configure network security group 選擇:"CnBateBlogWeb_NSG"
將 Public IP 的 SKU 修改成 「Standard」,點擊 「OK」
點擊 「Review+create」,進行預建立校驗操做,完成 預校驗操做後,點擊 「create」 進行建立操做。
預校驗完成後,咱們點擊 「Create」,進行建立資源
等待部署成功後,咱們能夠點擊 「Go to resource」 進行跳轉到剛剛建立到的VM資源的頁面查看具體信息
咱們重複上述工做,再次建立一臺名字叫 cnbateblogweb02 的新的VM,IP 地址配置中子網選擇 以前建立好的 "CnBateBlogWeb02_SubNET"
Azure Portal 中找到 剛剛建立好的 cnbateblogweb01 的 VM,複製圖中的 「Public IP address」
回到咱們的桌面,咱們使用遠程桌面鏈接,登陸到 」cnbateblogweb01「 這臺 VM 上
登陸上去後,咱們使用 Powershell 安裝IIS服務
powerShell 輸入:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
等待安裝進度條加載完成
等待安裝完成後,咱們能夠看到 成功或者失敗的提示
再次輸入如下命令,移除默認的IIS啓動頁面
remove-item C:\inetpub\wwwroot\iisstart.htm
再次輸入以下命令,從新添加咱們自定義的 index.html 文件。
Add-Content -Path "C:\inetpub\wwwroot\index.html" -Value $("Hello cnbatebogweb01---" + $env:computername)
添加完成後,咱們在本地訪問 cnbateblogweb01 的 ip地址 測試一下,看看是否將 IIS 安裝成功,以及咱們自定義的頁面是否成功展現,ok,測成功
接下來,咱們使用相同的方式登陸到 cnbateblogweb02 這臺VM 上也進行安裝IIS,而且添加自定義的 index.html 文件
一樣的,咱們在本地訪問 cnbateblogweb02 的 ip地址 測試一下,看看是否將 IIS 安裝成功,以及咱們自定義的頁面是否成功展現.
ok,以上步驟完成後,咱們就開始配置 Load Balancer
回到 Azure Portal 中,咱們找到以前建立好的名字叫 「lb_cnbateblogweb」 的負載均衡器,選擇 「Settings=>Backend pools」 添加後端池信息
Name:"cnbateblogweb_backendpool"
Virtual network 選擇:「CnBateWeb_VNET」
IP 默認爲:IPV4
Asscociated to 選擇: 「Virtual machines」
咱們點擊 「+Add」 講咱們以前建立好的兩臺VM 添加進來,如圖所示
最後點擊 「Add」 操做
稍等片刻,咱們能夠看到剛剛添加好的負載均衡器的 Backend Pool 信息
接下來,咱們須要設置健康檢查,選擇 「Settings=>Health probes」,點擊 「Add」 按鈕
Name:「cnbateblogweb_healthcheck」
port:「80」
其餘的都走默認配置,也就是說,Azure會每隔 15s 訪問一下後端池 80 端口 會進行健康探測,連續出現2次不正常的請求後,負載均衡器會自動將檢查不正常的後端池中的 VM 移除掉
接下來,咱們就要配置負載均衡的規則,頁面上咱們 選擇 「Settings=>Load balancing rules」 ,點擊 「Add」
Name:「cnbateblogweb_HttpRule」
Port:「80」
Backend port:「80」
Backend pool 選擇:"cnbateweb_backendpool"
Health probe 選擇:「cnbateblogweb_healthcheck」
點擊 「OK」
以上信息,建立完成後,咱們進行測試,服務當前 Load balancer 的 Public IP address ,複製到瀏覽器中,訪問試試。
咱們訪問負載均衡器的公網地址,目前是將我本地發出的請求轉發到 cnbateblogweb02 這臺VM上
同時,咱們能夠選擇Load Balance 的 「Insights」功能,以下圖所示,咱們能夠清楚的看到當前請求的一個大體的走向,這個圖和咱們在文章最上面介紹的架構圖特別類似
ok,今天介紹的Load Balance 的用法,以及作了一個小小的演示頁面,成功的經過負載均衡器將請求流量轉發到後端池的某個 VM 中.
分享到此結束。撒花,撒花!!!🎉🎉🎉🎉🎉
ok,今天的分析篇幅有些多,確實是本身沒有控制好,但願你們多多包涵,今天大概講解關於 Load Balancer 建立,配置後端池,配置健康檢查,配置負載均衡規則等,以及經過在兩個VM中的IIS服務器中添加自定義的 「index」 頁面,咱們可能直觀的看到負載均衡器將流量進行轉發。下一節咱們具體講解
1,負載均衡器具體的一些配置
2,將以前說的demo 發佈到 VM的IIS 服務器中,用demo項目更貼切與實際項目中的架構設計
做者:Allen
項目代碼:https://github.com/yunqian44/CnBateBlogWeb.git
版權:轉載請在文章明顯位置註明做者及出處。如發現錯誤,歡迎批評指正。