若要裝載多個網站,您可以使用另一個與虛擬機器相關聯的網路介面。 Azure Load Balancer 支援部署負載平衡,以支援網站的高可用性。
在本教學課程中,您會了解如何:
- 建立並設定虛擬網路、子網路和 NAT 閘道。
- 建立 2 部 Windows Server 虛擬機器
- 針對每部虛擬機器建立次要 NIC 和網路設定
- 在每部虛擬機器上建立 2 個 Internet Information Server (IIS) 網站
- 將網站繫結至網路設定
- 建立並設定 Azure Load Balancer
- 測試負載平衡器
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
建立虛擬網路和堡壘主機
在本節中,您會建立具有資源子網路、Azure Bastion 子網路和 Azure Bastion 主機的虛擬網路。
重要
無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格和 SKU。 如果要將 Bastion 部署為教學課程或測試的一部分,建議您在完成使用之後刪除此資源。
在入口網站中,搜尋並選取 [虛擬網路]。
在 [虛擬網路] 頁面上,選取 [+ 建立]。
在 [建立虛擬網路] 的 [基本] 索引標籤中,輸入或選取下列資訊:
設定 值 專案詳細資料 訂用帳戶 選取您的訂用帳戶。 資源群組 從下拉式清單中選取 [load-balancer-rg],或不存在時建立新的。
在 [名稱] 中輸入 load-balancer-rg。
選取 [確定]。[執行個體詳細資料] 名稱 輸入 lb-vnet。 區域 選取 [(美國) 美國東部]。 選取 [安全性] 索引標籤,或頁面底部的 [下一步] 按鈕。
在 [Azure Bastion] 底下,輸入或選取下列資訊:
設定 值 Azure Bastion 啟用 Azure Bastion 選取核取方塊。 Azure Bastion 主機名稱 輸入 lb-bastion。 Azure Bastion 公用 IP 位址 選取 [新建]
在 [名稱] 中輸入 lb-bastion-ip。
選取 [確定]。選取 [IP 位址] 索引標籤,或頁面底部的 [下一步]。
在 [建立虛擬網路] 頁面上,輸入或選取下列資訊:
設定 值 新增 IPv4 位址空間 IPv4 位址空間 輸入 10.0.0.0/16 (65,356 個位址)。 子網路 選取 [預設] 子網路連結以進行編輯。 編輯子網路 子網路用途 保留預設值 [Default]。 名稱 輸入 backend-subnet。 起始位址 輸入 10.0.0.0。 子網路大小 輸入 /24 (256 個位址)。 安全性 NAT 閘道 選取 [lb-nat-gateway]。 選取 [儲存]。
選取畫面底部的 [檢閱 + 建立],然後在驗證通過時,選取 [建立]。
重要
無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格和 SKU。 如果要將 Bastion 部署為教學課程或測試的一部分,建議您在完成使用之後刪除此資源。
建立 NAT 閘道
在本節中,您將建立 NAT 閘道,針對虛擬網路中的資源進行輸出網際網路存取。 如需輸出規則的其他選項,請參閱輸出連線的網路位址轉譯 (SNAT)
登入 Azure 入口網站。
在入口網站頂端的搜尋方塊中,輸入 NAT 閘道。 在搜尋結果中,選取 [NAT 閘道]。
選取 + 建立。
在 [建立網路位址轉譯 (NAT) 閘道] 的 [基本] 索引標籤中,輸入或選取下列資訊:
設定 值 專案詳細資料 訂用帳戶 選取您的訂用帳戶。 資源群組 選取 [新建]
在 [名稱] 中輸入 load-balancer-rg。
選取 [確定]。[執行個體詳細資料] NAT 閘道名稱 輸入 lb-nat-gateway。 區域 選取 [美國東部]。 可用性區域 選取 [無區域]。 閒置逾時 (分鐘) 輸入 15。 選取 [輸出 IP] 索引標籤,或選取頁面底部的 [下一步:輸出 IP] 按鈕。
選取 [公用 IP 位址] 下的 [建立新的公用 IP 位址]。
在 [新增公用 IP 位址] 的 [名稱] 中,輸入 nat-gw-public-ip。
選取 [確定]。
選取頁面底部的 [檢閱 + 建立] 藍色按鈕,或是選取 [檢閱 + 建立] 索引標籤。
選取 建立。
建立虛擬機器
在本節中,您會建立兩個虛擬機器來裝載 IIS 網站。
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
在 [虛擬機器] 中選取 [+ 建立],然後選取 [Azure 虛擬機器]。
在 [建立虛擬機器] 中,輸入或選取下列資訊:
設定 值 專案詳細資料 訂用帳戶 選取您的 Azure 訂用帳戶 資源群組 選取 [load-balancer-rg] [執行個體詳細資料] 虛擬機器名稱 輸入 myVM1 區域 選取 (美國) 美國東部 可用性選項 選取 [可用性區域] 可用性區域 選取 [1] 安全性類型 保留預設值 [標準]。 映像 選取 [Windows Server 2022 Datacenter - Gen2] 大小 選擇 VM 大小或接受預設設定 系統管理員帳戶 使用者名稱 輸入使用者名稱 密碼 輸入密碼 確認密碼 再次輸入密碼 輸入連接埠規則 公用輸入連接埠 選取 [無] 選取 [網路] 索引標籤,或選取 [下一步: 磁碟],然後選取 [下一步: 網路]。
在 [網路功能] 索引標籤中,選取或輸入:
設定 值 網路介面 虛擬網路 選取 [myVNet]。 子網路 選取 [backend-subnet(10.1.0.0/24)] 公用 IP 選取 [無]。 NIC 網路安全性群組 選取 [進階] 設定網路安全性群組 選取 [新建]
在 [建立網路安全性群組] 的 [名稱] 中,輸入 [myNSG]。
在 [輸入規則] 中,選取 [+新增輸入規則]。
在 [服務] 中選取 [HTTP]。
在 [優先順序] 下,輸入 [100]。
在 [ 名稱] 中,輸入 myNSGrule。
選取 [新增]。
選取 [確定]。選取 [檢閱 + 建立]。
檢閱設定,然後選取 [建立]。
依照步驟 1 到 7,使用下列值以及與 myVM1 相同的所有其他設定來建立另一個 VM:
設定 VM 2 名稱 myVM2 可用性區域 2 網路安全性群組 選取現有的 myNSG
注意
無論是未獲指派公用 IP 位址的 VM,或位於內部基本 Azure 負載平衡器後端集區的 VM,Azure 都會為其提供預設輸出存取 IP。 預設輸出存取 IP 機制能提供無法自行設定的輸出 IP 位址。
發生下列其中一個事件時,會停用預設輸出存取 IP:
- 公用 IP 位址會指派給 VM。
- 無論有沒有輸出規則,都會將 VM 放在標準負載平衡器的後端集區中。
- Azure NAT 閘道資源會指派給 VM 的子網路。
您在彈性協調流程模式中使用虛擬機器擴展集建立的 VM 沒有預設輸出存取。
如需 Azure 中輸出連線的詳細資訊,請參閱 Azure 中的預設輸出存取和使用輸出連線的來源網路位址轉譯 (SNAT)。
建立次要網路設定
在本節中,您會將每個虛擬機器現有 NIC 的私人 IP 位址變更為靜態。 接下來,您會新增 NIC 資源至每個具有靜態私人 IP 位址設定的虛擬機器。
如需在虛擬機器設定中設定浮動 IP 的詳細資訊,請參閱浮動 IP 客體 OS 設定。
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
選取 [myVM1]。
停止執行中的虛擬機器。
在 [設定] 中,選取 [網路]。
在 [網路] 中,選取 [網路介面] 旁邊的網路介面名稱。 網路介面會以 VM 的名稱開頭,並獲派一個隨機數字。 在此範例中,myVM1266。
在網路介面頁面的 [設定] 中,選取 [IP 設定]。
在 [IP 設定] 中,選取 [ipconfig1]。
在 [ipconfig1] 設定的 [指派] 中,選取 [靜態]。
選取 [儲存]。
返回 myVM1 的 [概觀] 頁面。
在 [設定] 中,選取 [網路]。
在 [網路] 頁面中,選取 [連結網路介面]。
在 [連結網路介面] 中,選取 [ 建立並連結網路介面]。
在 [建立網路介面] 中,輸入或選取下列資訊:
設定 值 專案詳細資料 資源群組 選取 [load-balancer-rg]。 網路介面 名稱 輸入 myVM1NIC2 子網路 選取 [backend-subnet (10.1.0.0/24)]。 NIC 網路安全性群組 選取進階。 設定網路安全性群組 選取 [myNSG]。 私人 IP 位址指派 選取 [靜態]。 私人 IP 位址 輸入 10.1.0.6。 選取 建立。
啟動虛擬機器。
針對 myVM2 重複步驟 1 到 16,同時取代下列資訊:
設定 myVM2 名稱 myVM2NIC2 私人 IP 位址 10.1.0.7
設定虛擬機器
在本節中,您會使用 Azure Bastion 連線至 myVM1 和 myVM2,並設定次要網路設定。 您會新增閘道的路由,進行次要網路設定。 然後,您會在每個虛擬機器上安裝 IIS,並自訂網站以顯示虛擬機器的主機名稱。
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
選取 [myVM1]。
啟動 myVM1。
在 [概觀] 中,選取 [連線],然後選取 [Bastion]。
輸入您在建立虛擬機器時所輸入的使用者名稱和密碼。
選取 [允許],讓 Bastion 可以使用剪貼簿。
在伺服器桌面上,流覽至 [啟動 > Windows 系統管理工具>][Windows PowerShell Windows PowerShell>]。
在 PowerShell 視窗中,執行
route print
命令,針對連結兩個網路介面的虛擬機器傳回類似下列的輸出:=========================================================================== Interface List 4...60 45 bd 9c c7 00 ......Microsoft Hyper-V Network Adapter 11...60 45 bd 8d 44 fa ......Microsoft Hyper-V Network Adapter #3 1...........................Software Loopback Interface 1 =========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 10.1.0.1 10.1.0.4 10 10.1.0.0 255.255.255.0 On-link 10.1.0.4 266 10.1.0.0 255.255.255.0 On-link 10.1.0.6 266 10.1.0.4 255.255.255.255 On-link 10.1.0.4 266 10.1.0.6 255.255.255.255 On-link 10.1.0.6 266 10.1.0.255 255.255.255.255 On-link 10.1.0.4 266 10.1.0.255 255.255.255.255 On-link 10.1.0.6 266 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 127.255.255.255 255.255.255.255 On-link 127.0.0.1 331 168.63.129.16 255.255.255.255 10.1.0.1 10.1.0.4 11 169.254.169.254 255.255.255.255 10.1.0.1 10.1.0.4 11 224.0.0.0 240.0.0.0 On-link 127.0.0.1 331 224.0.0.0 240.0.0.0 On-link 10.1.0.4 266 224.0.0.0 240.0.0.0 On-link 10.1.0.6 266 255.255.255.255 255.255.255.255 On-link 127.0.0.1 331 255.255.255.255 255.255.255.255 On-link 10.1.0.4 266 255.255.255.255 255.255.255.255 On-link 10.1.0.6 266 =========================================================================== Persistent Routes: None IPv6 Route Table =========================================================================== Active Routes: If Metric Network Destination Gateway 1 331 ::1/128 On-link 4 266 fe80::/64 On-link 11 266 fe80::/64 On-link 11 266 fe80::382:8783:5d2:f71e/128 On-link 4 266 fe80::1575:ced8:3e94:f23a/128 On-link 1 331 ff00::/8 On-link 4 266 ff00::/8 On-link 11 266 ff00::/8 On-link =========================================================================== Persistent Routes: None
在此範例中,Microsoft Hyper-V 網路介面卡 #3 (介面 13) 是未獲指派預設閘道的次要網路介面。
在 PowerShell 視窗中,執行
ipconfig /all
命令,查看哪些 IP 位址已指派給次要網路介面。 在此範例中,10.1.0.6 已指派給介面 13。 不會為次要網路介面傳回預設閘道位址。Connection-specific DNS Suffix . : pbu0t5vjr3sevaritkncspakhd.ax.internal.cloudapp.net Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter #3 Physical Address. . . . . . . . . : 60-45-BD-A1-75-FB DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::dfb3:b93e:3516:c5b6%12(Preferred) IPv4 Address. . . . . . . . . . . : 10.1.0.6(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 Lease Obtained. . . . . . . . . . : Monday, December 12, 2022 7:42:31 PM Lease Expires . . . . . . . . . . : Friday, January 19, 2159 2:17:19 AM Default Gateway . . . . . . . . . : DHCP Server . . . . . . . . . . . : 168.63.129.16 DHCPv6 IAID . . . . . . . . . . . : 207635901 DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2B-28-C9-C0-60-45-BD-9B-ED-AE DNS Servers . . . . . . . . . . . : 168.63.129.16 NetBIOS over Tcpip. . . . . . . . : Enabled
若要將子網路外部位址的所有流量路由傳送至閘道,請執行下列命令:
route -p add 0.0.0.0 MASK 0.0.0.0 10.1.0.1 METRIC 5015 IF 13
在此範例中,10.1.0.1 是您先前所建立虛擬網路的預設閘道。
執行下列命令,或將程式碼複製並貼到 PowerShell 視窗中,以安裝並設定 IIS 和測試網站:
## Install IIS and the management tools. ## Install-WindowsFeature -Name Web-Server -IncludeManagementTools ## Set the binding for the Default website to 10.1.0.4:80. ## $para1 = @{ Name = 'Default Web Site' BindingInformation = '10.1.0.4:80:' Protocol = 'http' } New-IISSiteBinding @para1 ## Remove the default site binding. ## $para2 = @{ Name = 'Default Web Site' BindingInformation = '*:80:' } Remove-IISSiteBinding @para2 ## Remove the default htm file. ## Remove-Item c:\inetpub\wwwroot\iisstart.htm ## Add a new htm file that displays the Contoso website. ## $para3 = @{ Path = 'c:\inetpub\wwwroot\iisstart.htm' Value = $("Hello World from www.contoso.com" + "-" + $env:computername) } Add-Content @para3 ## Create folder to host website. ## $para4 = @{ Path = 'c:\inetpub\' Name = 'fabrikam' Type = 'directory' } New-Item @para4 ## Create a new website and site binding for the second IP address 10.1.0.6. ## $para5 = @{ Name = 'Fabrikam' PhysicalPath = 'c:\inetpub\fabrikam' BindingInformation = '10.1.0.6:80:' } New-IISSite @para5 ## Add a new htm file that displays the Fabrikam website. ## $para6 = @{ Path = 'C:\inetpub\fabrikam\iisstart.htm' Value = $("Hello World from www.fabrikam.com" + "-" + $env:computername) } Add-Content @para6
關閉與 myVM1 的 Bastion 連線。
針對 myVM2 重複步驟 1 到 12。 針對 myVM2,使用下列 PowerShell 程式碼進行 IIS 安裝。
## Install IIS and the management tools. ## Install-WindowsFeature -Name Web-Server -IncludeManagementTools ## Set the binding for the Default website to 10.1.0.5:80. ## $para1 = @{ Name = 'Default Web Site' BindingInformation = '10.1.0.5:80:' Protocol = 'http' } New-IISSiteBinding @para1 ## Remove the default site binding. ## $para2 = @{ Name = 'Default Web Site' BindingInformation = '*:80:' } Remove-IISSiteBinding @para2 ## Remove the default htm file. ## Remove-Item C:\inetpub\wwwroot\iisstart.htm ## Add a new htm file that displays the Contoso website. ## $para3 = @{ Path = 'c:\inetpub\wwwroot\iisstart.htm' Value = $("Hello World from www.contoso.com" + "-" + $env:computername) } Add-Content @para3 ## Create folder to host website. ## $para4 = @{ Path = 'c:\inetpub\' Name = 'fabrikam' Type = 'directory' } New-Item @para4 ## Create a new website and site binding for the second IP address 10.1.0.7. ## $para5 = @{ Name = 'Fabrikam' PhysicalPath = 'c:\inetpub\fabrikam' BindingInformation = '10.1.0.7:80:' } New-IISSite @para5 ## Add a new htm file that displays the Fabrikam website. ## $para6 = @{ Path = 'C:\inetpub\fabrikam\iisstart.htm' Value = $("Hello World from www.fabrikam.com" + "-" + $env:computername) } Add-Content @para6
建立負載平衡器
在本節中,您會建立區域備援負載平衡器以平衡虛擬機器的負載。
透過區域備援,即便有一或多個可用性區域可能失敗,但是地區中只要有一個區域維持良好狀況,資料路徑就得以存留。
建立負載平衡器期間,您會設定:
- 兩個前端 IP 位址,每個網站各一個。
- 後端集區
- 輸入負載平衡規則
在入口網站頂端的搜尋方塊中,輸入負載平衡器。 在搜尋結果中,選取 [負載平衡器]。
在 [負載平衡器] 頁面中,選取 [建立]。
在 [建立負載平衡器] 頁面的 [基本] 索引標籤中,輸入或選取下列資訊:
設定 值 專案詳細資料 訂用帳戶 選取您的訂用帳戶。 資源群組 選取 [load-balancer-rg]。 [執行個體詳細資料] 名稱 輸入 myLoadBalancer 區域 選取 [美國東部]。 SKU(庫存單位) 保留預設值 [標準]。 類型 選取 [公用]。 層 保留預設值 [區域]。 選取 [下一步: 前端 IP 設定]。
在 [前端 IP 設定] 中,選取 [+ 新增前端 IP 設定]。
在 [新增前端 IP 設定] 中,輸入或選取下列資訊:
設定 值 名稱 輸入 Frontend-contoso。 IP 版本 選取 [IPv4]。 IP 類型 選取 [IP 位址]。 公用 IP 位址 選取 [新建]
在 [可用性區域] 中輸入 myPublicIP-contoso,
[區域備援]。
針對 [路由喜好設定],保留 [Microsoft 網路] 的預設值。
選取 [確定]。注意
路由喜好設定或跨區域負載平衡 (全域層) 目前不支援 IPv6。
如需 IP 首碼的詳細資訊,請參閱 Azure 公用 IP 位址首碼。
在具有 可用性區域的區域中,您可以選取無區域(預設選項)、特定區域或區域備援。 選擇將取決於您的特定網域失敗需求。 在沒有可用性區域的區域中,不會出現此欄位。
如需關於可用性區域的詳細資訊,請參閱可用性區域概觀。選取 [新增]。
選取 [+ 新增前端 IP 設定]。
在 [新增前端 IP 設定] 中,輸入或選取下列資訊:
設定 值 名稱 輸入 Frontend-fabrikam。 IP 版本 選取 [IPv4]。 IP 類型 選取 [IP 位址]。 公用 IP 位址 選取 [新建]
在 [可用性] 區域中輸入 myPublicIP-fabrikam,以選取 [區域
備援]。
針對 [路由喜好設定],保留 [Microsoft 網路] 的預設值。
選取 [確定]。選取 [新增]。
選取 [下一步:後端集區]。
在 [後端集區] 索引標籤中選取 [+ 新增後端集區]。
在 [新增後端集區] 中,輸入或選取下列資訊:
設定 值 名稱 輸入 myBackendPool-contoso。 虛擬網路 選取 [myVNet]。 後端集區設定 選取 [NIC]。 在 [IP 設定] 下方,選取 [+ 新增]。
選取與 ipconfig1 (10.1.0.4) 和 ipconfig1 (10.1.0.5) 對應的 myVM1 和 myVM2。
選取 [新增]。
選取 [儲存]。
選取 [+新增後端集區]。
在 [新增後端集區] 中,輸入或選取下列資訊:
設定 值 名稱 輸入 myBackendPool-fabrikam。 虛擬網路 選取 [myVNet]。 後端集區設定 選取 [NIC]。 在 [IP 設定] 下方,選取 [+ 新增]。
選取與 ipconfig1 (10.1.0.6) 和 ipconfig1 (10.1.0.7) 對應的 myVM1 和 myVM2。
選取 [新增]。
選取 [儲存]。
選取 [下一步:輸入規則]。
在 [負載平衡規則] 的 [輸入規則] 索引標籤中,選取 [+ 新增負載平衡規則]。
在 [新增負載平衡規則] 中輸入或選取以下資訊:
設定 值 名稱 輸入 myHTTPRule-contoso IP 版本 選取 [IPv4]。 前端 IP 位址 選取 [Frontend-contoso]。 後端集區 選取 [myBackendPool-contoso]。 通訊協定 選取 [TCP]。 連接埠 輸入 80。 後端連接埠 輸入 80。 健康狀態探查 選取 [新建]
在 [名稱] 中輸入 myHealthProbe-contoso。
在 [通訊協定] 中選取 [TCP]。
保留其餘的預設值,然後選取 [確定]。工作階段持續性 選取 [無]。 閒置逾時 (分鐘) 輸入或選取 [15]。 TCP 重設 選取 [啟用] 。 浮動 IP 選取 [已停用]。 輸出來源網路位址轉譯 (SNAT) 保留預設值 [(建議) 使用輸出規則,對後端集區成員提供網際網路的存取權]。 選取 [新增]。
選取 [新增負載平衡規則]。
在 [新增負載平衡規則] 中輸入或選取以下資訊:
設定 值 名稱 輸入 myHTTPRule-fabrikam IP 版本 選取 [IPv4]。 前端 IP 位址 選取 [Frontend-fabrikam]。 後端集區 選取 [myBackendPool-fabrikam]。 通訊協定 選取 [TCP]。 連接埠 輸入 80。 後端連接埠 輸入 80。 健康狀態探查 選取 [新建]
在 [名稱] 中,輸入 myHealthProbe-fabrikam。
在 [通訊協定] 中選取 [TCP]。
保留其餘的預設值,然後選取 [確定]。工作階段持續性 選取 [無]。 閒置逾時 (分鐘) 輸入或選取 [15]。 TCP 重設 選取 [啟用] 。 浮動 IP 選取 [已停用]。 輸出來源網路位址轉譯 (SNAT) 保留預設值 [(建議) 使用輸出規則,對後端集區成員提供網際網路的存取權]。 選取 [新增]。
選取頁面底部的 [檢閱 + 建立] 藍色按鈕。
選取 建立。
注意
在此範例中,我們建立了 NAT 閘道,以提供輸出因特網存取。 設定中的 [輸出規則] 索引標籤會略過,因為這是選擇性選項,而 NAT 閘道不需要這項選擇。 如需 Azure NAT 閘道的詳細資訊,請參閱什麼是 Azure 虛擬網路 NAT?如需 Azure 中輸出連線的詳細資訊,請參閱輸出連線的來源網路位址轉譯 (SNAT)
測試負載平衡器
在本節中,您會探索每個網站的公用 IP 位址。 您會將 IP 輸入至瀏覽器,以測試您先前建立的網站。
在入口網站頂端的搜尋方塊中,輸入公用 IP。 在搜尋結果中,選取 [公用 IP 位址]。
選取 [myPublicIP-contoso]。
在 myPublicIP-contoso 的概觀頁面中複製 IP 位址。
開啟瀏覽器並將公用 IP 位址複製貼入網址列中。
回到 [公用 IP 位址]。 選取 [myPublicIP-fabrikam]。
在 myPublicIP-fabrikam 的概觀頁面中複製 IP 位址。
開啟瀏覽器並將公用 IP 位址複製貼入網址列中。
若要測試負載平衡器,請重新整理瀏覽器或關閉其中一部虛擬機器。
清除資源
如果您不繼續使用此應用程式,請使用下列步驟刪除虛擬機器和負載平衡器:
在入口網站頂端的搜尋方塊中,輸入資源群組。 在搜尋結果中,選取 [資源群組]。
選取 [資源群組] 中的 [load-balancer-rg]。
選取 [刪除資源群組]。
在 [輸入資源群組名稱:] 中,輸入 load-balancer-rg。 選取 [刪除]。
多個IP組態的負載平衡
請完成下列步驟來達成本文所述案例︰
安裝和設定 Azure CLI,方法是遵循所連結文章內的步驟並登入 Azure 帳戶。
如下所述建立資源群組 (稱為 contosofabrikam)。
az group create contosofabrikam westcentralus
為兩個 VM 建立可用性集合。 在此案例中,請使用下列命令:
az vm availability-set create --resource-group contosofabrikam --location westcentralus --name myAvailabilitySet
建立虛擬網路 (稱為 myVNet) 和子網路 (稱為 mySubnet):
az network vnet create --resource-group contosofabrikam --name myVnet --address-prefixes 10.0.0.0/16 --location westcentralus --subnet-name MySubnet --subnet-prefix 10.0.0.0/24
建立負載平衡器 (稱為 mylb):
az network lb create --resource-group contosofabrikam --location westcentralus --name mylb
針對負載平衡器的前端 IP 組態建立兩個動態公用 IP 位址︰
az network public-ip create --resource-group contosofabrikam --location westcentralus --name PublicIp1 --domain-name-label contoso --allocation-method Dynamic az network public-ip create --resource-group contosofabrikam --location westcentralus --name PublicIp2 --domain-name-label fabrikam --allocation-method Dynamic
分別建立兩個前端 IP 組態 contosofe 和 fabrikamfe︰
az network lb frontend-ip create --resource-group contosofabrikam --lb-name mylb --public-ip-name PublicIp1 --name contosofe az network lb frontend-ip create --resource-group contosofabrikam --lb-name mylb --public-ip-name PublicIp2 --name fabrikamfe
建立您的後端位址池 - contosopool 和 fabrikampool,探測 - HTTP,以及您的負載平衡規則 - HTTPruleContoso 和 HTTPruleFabrikam:
az network lb address-pool create --resource-group contosofabrikam --lb-name mylb --name contosopool azure network lb address-pool create --resource-group contosofabrikam --lb-name mylb --name fabrikampool az network lb probe create --resource-group contosofabrikam --lb-name mylb --name HTTP --protocol "http" --interval 15 --count 2 --path index.html az network lb rule create --resource-group contosofabrikam --lb-name mylb --name HTTPruleContoso --protocol tcp --probe-name http--frontend-port 5000 --backend-port 5000 --frontend-ip-name contosofe --backend-address-pool-name contosopool az network lb rule create --resource-group contosofabrikam --lb-name mylb --name HTTPruleFabrikam --protocol tcp --probe-name http --frontend-port 5000 --backend-port 5000 --frontend-ip-name fabrikamfe --backend-address-pool-name fabrikampool
執行下列命令,檢查輸出以確認負載平衡器已正確建立︰
az network lb show --resource-group contosofabrikam --name mylb
如下所示為第一個虛擬機器 VM1 建立公用 IP (myPublicIp) 和儲存體帳戶 (mystorageaccont1)︰
az network public-ip create --resource-group contosofabrikam --location westcentralus --name myPublicIP --domain-name-label mypublicdns345 --allocation-method Dynamic az storage account create --location westcentralus --resource-group contosofabrikam --kind Storage --sku-name GRS mystorageaccount1
如下所示為 VM1 建立網路介面與新增第二個 IP 組態 (VM1-ipconfig2),然後建立 VM︰
az network nic create --resource-group contosofabrikam --location westcentralus --subnet-vnet-name myVnet --subnet-name mySubnet --name VM1Nic1 --ip-config-name NIC1-ipconfig1 az network nic create --resource-group contosofabrikam --location westcentralus --subnet-vnet-name myVnet --subnet-name mySubnet --name VM1Nic2 --ip-config-name VM1-ipconfig1 --public-ip-name myPublicIP --lb-address-pool-ids "/subscriptions/<your subscription ID>/resourceGroups/contosofabrikam/providers/Microsoft.Network/loadBalancers/mylb/backendAddressPools/contosopool" az network nic ip-config create --resource-group contosofabrikam --nic-name VM1Nic2 --name VM1-ipconfig2 --lb-address-pool-ids "/subscriptions/<your subscription ID>/resourceGroups/contosofabrikam/providers/Microsoft.Network/loadBalancers/mylb/backendAddressPools/fabrikampool" az vm create --resource-group contosofabrikam --name VM1 --location westcentralus --os-type linux --nic-names VM1Nic1,VM1Nic2 --vnet-name VNet1 --vnet-subnet-name Subnet1 --availability-set myAvailabilitySet --vm-size Standard_DS3_v2 --storage-account-name mystorageaccount1 --image-urn canonical:UbuntuServer:16.04.0-LTS:latest --admin-username <your username> --admin-password <your password>
為第二個 VM 重複步驟 10 至 11:
az network public-ip create --resource-group contosofabrikam --location westcentralus --name myPublicIP2 --domain-name-label mypublicdns785 --allocation-method Dynamic az storage account create --location westcentralus --resource-group contosofabrikam --kind Storage --sku-name GRS mystorageaccount2 az network nic create --resource-group contosofabrikam --location westcentralus --subnet-vnet-name myVnet --subnet-name mySubnet --name VM2Nic1 az network nic create --resource-group contosofabrikam --location westcentralus --subnet-vnet-name myVnet --subnet-name mySubnet --name VM2Nic2 --ip-config-name VM2-ipconfig1 --public-ip-name myPublicIP2 --lb-address-pool-ids "/subscriptions/<your subscription ID>/resourceGroups/contosofabrikam/providers/Microsoft.Network/loadBalancers/mylb/backendAddressPools/contosopool" az network nic ip-config create --resource-group contosofabrikam --nic-name VM2Nic2 --name VM2-ipconfig2 --lb-address-pool-ids "/subscriptions/<your subscription ID>/resourceGroups/contosofabrikam/providers/Microsoft.Network/loadBalancers/mylb/backendAddressPools/fabrikampool" az vm create --resource-group contosofabrikam --name VM2 --location westcentralus --os-type linux --nic-names VM2Nic1,VM2Nic2 --vnet-name VNet1 --vnet-subnet-name Subnet1 --availability-set myAvailabilitySet --vm-size Standard_DS3_v2 --storage-account-name mystorageaccount2 --image-urn canonical:UbuntuServer:16.04.0-LTS:latest --admin-username <your username> --admin-password <your password>
最後,您必須將 DNS 資源記錄設定為指向 Load Balancer 的個別前端 IP 位址。 您可以在 Azure DNS 中裝載網域。 如需搭配 Load Balancer 使用 Azure DNS 的詳細資訊,請參閱 搭配其他 Azure 服務使用 Azure DNS
多個IP組態的負載平衡
注意
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 開始使用前,請參閱安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
使用下列步驟來建立負載平衡器,以使用 Azure PowerShell 在單一虛擬機 (VM) 上平衡多個 IP 組態的流量。 此範例使用兩個 VM,但您可以針對任意數目的 VM 使用這個相同的程式。
安裝 Azure PowerShell。 如需如何安裝最新版 Azure PowerShell、選取訂用帳戶,以及登入帳戶的相關資訊,請參閱如何安裝和設定 Azure PowerShell。
使用下列設定建立資源群組:
$location = "westcentralus". $myResourceGroup = "contosofabrikam"
如需詳細資訊,請參閱建立資源群組的步驟 2。
建立可用性設定組以容納 VM。 在此案例中,請使用下列命令:
New-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset" -Location "West Central US"
遵循建立 Windows VM一文中的指示步驟 3 至 5,以準備建立具有單一 NIC 的 VM。 執行步驟 6.1,並使用下列項目,而不是步驟 6.2︰
$availset = Get-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset" New-AzVMConfig -VMName "VM1" -VMSize "Standard_DS1_v2" -AvailabilitySetId $availset.Id
然後完成建立 Windows VM的步驟 6.3 至 6.8。
在每個 VM 中新增第二個 IP 組態。 遵循對虛擬機器指派多個 IP 位址一文中的指示。 使用下列組態設定:
$NicName = "VM1-NIC2" $RgName = "contosofabrikam" $NicLocation = "West Central US" $IPConfigName4 = "VM1-ipconfig2" $Subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $myVnet
在本教學課程中,您不需要將次要IP組態與公用IP產生關聯。 請編輯命令以移除公用 IP 關聯部分。
再次完成 VM2 的步驟 4 到 6。 請務必將程式代碼範例中的 VM 名稱取代為
VM2
。 您不需要為第二個 VM 建立虛擬網路。 您可以根據您的使用案例建立新的子網。建立兩個公用 IP 位址,並將它們儲存在適當的變數中,如下所示︰
$publicIP1 = New-AzPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam -Location 'West Central US' -AllocationMethod Dynamic -DomainNameLabel contoso $publicIP2 = New-AzPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam -Location 'West Central US' -AllocationMethod Dynamic -DomainNameLabel fabrikam $publicIP1 = Get-AzPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam $publicIP2 = Get-AzPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam
建立兩個前端 IP 組態:
$frontendIP1 = New-AzLoadBalancerFrontendIpConfig -Name contosofe -PublicIpAddress $publicIP1 $frontendIP2 = New-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2
建立後端位址集區、探查和負載平衡規則︰
$beaddresspool1 = New-AzLoadBalancerBackendAddressPoolConfig -Name contosopool $beaddresspool2 = New-AzLoadBalancerBackendAddressPoolConfig -Name fabrikampool $healthProbe = New-AzLoadBalancerProbeConfig -Name HTTP -RequestPath 'index.html' -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2 $lbrule1 = New-AzLoadBalancerRuleConfig -Name HTTPc -FrontendIpConfiguration $frontendIP1 -BackendAddressPool $beaddresspool1 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80 $lbrule2 = New-AzLoadBalancerRuleConfig -Name HTTPf -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80
建立好這些資源後,請建立負載平衡器︰
$mylb = New-AzLoadBalancer -ResourceGroupName contosofabrikam -Name mylb -Location 'West Central US' -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
在新建立的負載平衡器中新增第二個後端位址集區和前端 IP 組態︰
$mylb = Get-AzLoadBalancer -Name "mylb" -ResourceGroupName $myResourceGroup | Add-AzLoadBalancerBackendAddressPoolConfig -Name fabrikampool | Set-AzLoadBalancer $mylb | Add-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2 | Set-AzLoadBalancer Add-AzLoadBalancerRuleConfig -Name HTTP -LoadBalancer $mylb -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80 | Set-AzLoadBalancer
下列命令會取得 NIC,然後將每個次要 NIC 的兩個 IP 組態新增至負載平衡器的後端位址池:
$nic1 = Get-AzNetworkInterface -Name "VM1-NIC2" -ResourceGroupName "MyResourcegroup"; $nic2 = Get-AzNetworkInterface -Name "VM2-NIC2" -ResourceGroupName "MyResourcegroup"; $nic1.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]); $nic1.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]); $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]); $nic2.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]); $mylb = $mylb | Set-AzLoadBalancer $nic1 | Set-AzNetworkInterface $nic2 | Set-AzNetworkInterface
最後,您必須將 DNS 資源記錄設定為指向 Load Balancer 的個別前端 IP 位址。 您可以在 Azure DNS 中裝載網域。 如需搭配使用 Azure DNS 與 Load Balancer 的詳細資訊,請參閱使用 Azure DNS 搭配其他 Azure 服務。
下一步
前往下一篇文章,以了解如何建立跨區域負載平衡器: