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

一,引言

  上節,我們講到使用 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 

項目程式碼://github.com/yunqian44/CnBateBlogWeb.git

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

Tags: