Azure Load Balancer(一) 為我們的Web專案提供負載均衡

Grant_Allen發表於2020-07-26

一,引言

  上節,我們講到使用 Azure Traffic Manager 為我們的 Demo 專案提供負載均衡,以及流量轉發的功能。但是Azure 提供類似的功能的服務遠遠不止這一個,今天我們就來講一下 Azure Load Balance ,通過它來實現負載均衡,流量轉發,以及分享一下 Azure Load Balance 的建立,和具體的配置。

  Azure Load Balance:是指在一組後端資源和伺服器之間負載均衡的分配負載(傳入網路流量)

  Azure 負載均衡器在開放式系統互連 (OSI) 模型的第四層上執行。 它是客戶端的單一聯絡點。 負載均衡器將抵達負載均衡器前端的入站流量分配到後端池例項。 這些流取決於所配置的負載均衡規則和執行狀況探測。 後端池例項可以是 Azure 虛擬機器,或虛擬機器規模集中的例項。

  我們今天演示的後端連結的是一組VM。

--------------------我是分割線--------------------上架構圖

--------------------我是分割線--------------------

Azure Web App 部署系列:

1,Azure Web App(一)釋出你的Net Core Web 專案

2,Azure Web App(二)使用部署槽切換部署環境程式碼

3,Azure Web App(三)切換你的Net Core Web 專案的資料庫連線字串

4,Azure 提供負載均衡(一)Azure Traffic Manager 為我們的Web專案提供負載均衡

5,Azure Traffic Manager(二) 基於權重與基於優先順序的路由策略為我們的Web專案提供負載均衡 

6,Azure Load Balance(一) 為我們的Web專案提供負載均衡 

二,正文

 1,建立外部的Azure Load Balance

Azure Portal 點選 “create a resource”

 

 搜尋框 輸入 "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” 跳轉到資源

 2,建立VM,部署 Web 專案

在建立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"

 3,伺服器安裝IIS

 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

4,配置 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

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

相關文章