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 和Azure VM 部署系列:

1,Azure Web App(一)發布你的Net Core Web 項目

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

3,Azure Web App(三)切換你的Net Core Web 項目的數據庫連接字符串

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

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

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

7,Azure Load Balancer(二) 基於內部的負載均衡來轉發訪問請求 

8,Azure Application Gateway(一)對后端 Web App 進行負載均衡 

9,Azure Application Gateway(二)對后端 VM 進行負載均衡  

二,正文

 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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM