快速入門:使用 Azure CLI 建立公用負載平衡器,來平衡 VM 的負載
使用 Azure CLI 來建立公用負載平衡器和兩部虛擬機器,以開始使用 Azure Load Balancer。 除了這些資源之外,您也會部署 Azure Bastion、NAT 閘道、虛擬網路和所需的子網路。
如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶。
必要條件
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本快速入門需要 2.0.28 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
建立資源群組
Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。
使用 az group create 來建立資源群組:
az group create \
--name CreatePubLBQS-rg \
--location eastus
建立虛擬網路
請先建立支援的虛擬網路和子網路,才可部署 VM 並測試您的負載平衡器。
使用 az network vnet create 來建立虛擬網路。 虛擬網路和子網路會包含本文稍後部署的資源。
az network vnet create \
--resource-group CreatePubLBQS-rg \
--location eastus \
--name myVNet \
--address-prefixes 10.1.0.0/16 \
--subnet-name myBackendSubnet \
--subnet-prefixes 10.1.0.0/24
建立公用 IP 位址
若要在網際網路上存取您的 Web 應用程式,您需要負載平衡器的公用 IP 位址。
使用 az network public-ip create 來建立負載平衡器前端的公用 IP。
az network public-ip create \
--resource-group CreatePubLBQS-rg \
--name myPublicIP \
--sku Standard \
--zone 1 2 3
如果要改為在區域 1 中建立區域性的公用 IP 位址,請執行下列命令:
az network public-ip create \
--resource-group CreatePubLBQS-rg \
--name myPublicIP \
--sku Standard \
--zone 1
建立負載平衡器
本節將詳細說明如何建立及設定下列負載平衡器元件:
前端 IP 集區,可接收負載平衡器上的連入網路流量
後端 IP 集區,前端集區在其中傳送負載平衡網路流量
健康狀態探查,可判斷後端 VM 執行個體的健康狀態
負載平衡器規則,可定義如何將流量分散至 VM
建立負載平衡器資源
使用 az network lb create 建立公用負載平衡器:
az network lb create \
--resource-group CreatePubLBQS-rg \
--name myLoadBalancer \
--sku Standard \
--public-ip-address myPublicIP \
--frontend-ip-name myFrontEnd \
--backend-pool-name myBackEndPool
如果建立的公用 IP 為區域性,則必須在建立公用負載平衡器時定義指定的區域。
az network lb create \
--resource-group CreatePubLBQS-rg \
--name myLoadBalancer \
--sku Standard \
--public-ip-address myPublicIP \
--frontend-ip-name myFrontEnd \
--public-ip-zone 1 \
--backend-pool-name myBackEndPool
建立健康狀態探查
健全狀況探查會檢查所有虛擬機器執行個體,確認可以傳送網路流量。
已從負載平衡器移除具有失敗探查檢查的虛擬機器。 解決失敗情況之後,系統會將虛擬機器新增回負載平衡器。
使用 az network lb probe create 建立健康狀態探查:
az network lb probe create \
--resource-group CreatePubLBQS-rg \
--lb-name myLoadBalancer \
--name myHealthProbe \
--protocol tcp \
--port 80
建立負載平衡器規則
負載平衡器規則定義:
傳入流量的前端 IP 設定
接收流量的後端 IP 集區
所需的來源和目的地連接埠
使用 az network lb rule create 建立負載平衡器規則:
az network lb rule create \
--resource-group CreatePubLBQS-rg \
--lb-name myLoadBalancer \
--name myHTTPRule \
--protocol tcp \
--frontend-port 80 \
--backend-port 80 \
--frontend-ip-name myFrontEnd \
--backend-pool-name myBackEndPool \
--probe-name myHealthProbe \
--disable-outbound-snat true \
--idle-timeout 15 \
--enable-tcp-reset true
建立網路安全性群組
如果是標準負載平衡器,後端集區中的 VM 都需要有屬於網路安全性群組的網路介面。
使用 az network nsg create 來建立網路安全性群組:
az network nsg create \
--resource-group CreatePubLBQS-rg \
--name myNSG
建立網路安全性群組規則
使用 az network nsg rule create 建立網路安全性群組規則:
az network nsg rule create \
--resource-group CreatePubLBQS-rg \
--nsg-name myNSG \
--name myNSGRuleHTTP \
--protocol '*' \
--direction inbound \
--source-address-prefix '*' \
--source-port-range '*' \
--destination-address-prefix '*' \
--destination-port-range 80 \
--access allow \
--priority 200
建立 Bastion 主機
本節中會建立 Azure Bastion 的資源。 Azure Bastion 用來安全地管理負載平衡器後端集區中的虛擬機器。
重要
無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格和 SKU。 如果您要將 Bastion 部署為教學課程或測試的一部分,建議您在完成使用之後刪除此資源。
建立公用 IP 位址
使用 az network public-ip create 來建立堡壘主機的公用 IP 位址。 堡壘主機使用公用 IP 來保護對虛擬機器資源的存取。
az network public-ip create \
--resource-group CreatePubLBQS-rg \
--name myBastionIP \
--sku Standard \
--zone 1 2 3
建立 Bastion 子網路
使用 az network vnet subnet create 來建立堡壘子網路。 堡壘主機會使用堡壘子網路來存取虛擬網路。
az network vnet subnet create \
--resource-group CreatePubLBQS-rg \
--name AzureBastionSubnet \
--vnet-name myVNet \
--address-prefixes 10.1.1.0/27
建立 Bastion 主機
使用 az network bastion create 來建立堡壘主機。 堡壘主機用來安全地連線至本文稍後建立的虛擬機器資源。
az network bastion create \
--resource-group CreatePubLBQS-rg \
--name myBastionHost \
--public-ip-address myBastionIP \
--vnet-name myVNet \
--location eastus
部署 Azure Bastion 主機需要幾分鐘的時間。
建立後端伺服器
在這個小節中,您會建立:
虛擬機器的兩個網路介面
兩個虛擬機器作為負載平衡器的後端伺服器
建立虛擬機器的網路介面
使用 az network nic create 建立兩個網路介面:
array=(myNicVM1 myNicVM2)
for vmnic in "${array[@]}"
do
az network nic create \
--resource-group CreatePubLBQS-rg \
--name $vmnic \
--vnet-name myVNet \
--subnet myBackEndSubnet \
--network-security-group myNSG
done
建立虛擬機器
使用 az vm create 建立虛擬機器:
az vm create \
--resource-group CreatePubLBQS-rg \
--name myVM1 \
--nics myNicVM1 \
--image win2019datacenter \
--admin-username azureuser \
--zone 1 \
--no-wait
az vm create \
--resource-group CreatePubLBQS-rg \
--name myVM2 \
--nics myNicVM2 \
--image win2019datacenter \
--admin-username azureuser \
--zone 2 \
--no-wait
可能需要幾分鐘的時間部署 VM。 建立 VM 時可以繼續進行後續步驟。
注意
無論是未獲指派公用 IP 位址的 VM,或位於內部基本 Azure 負載平衡器後端集區的 VM,Azure 都會為其提供預設輸出存取 IP。 預設輸出存取 IP 機制能提供無法自行設定的輸出 IP 位址。
發生下列其中一個事件時,會停用預設輸出存取 IP:
- 公用 IP 位址會指派給 VM。
- 無論有沒有輸出規則,都會將 VM 放在標準負載平衡器的後端集區中。
- Azure NAT 閘道資源會指派給 VM 的子網路。
您在彈性協調流程模式中使用虛擬機器擴展集建立的 VM 沒有預設輸出存取。
如需 Azure 中輸出連線的詳細資訊,請參閱 Azure 中的預設輸出存取與針對輸出連線,使用來源網路位址轉譯 (SNAT)。
將虛擬機器新增至負載平衡器後端集區
使用 az network nic ip-config address-pool add 將虛擬機器新增至後端集區:
array=(myNicVM1 myNicVM2)
for vmnic in "${array[@]}"
do
az network nic ip-config address-pool add \
--address-pool myBackendPool \
--ip-config-name ipconfig1 \
--nic-name $vmnic \
--resource-group CreatePubLBQS-rg \
--lb-name myLoadBalancer
done
建立 NAT 閘道
若要為後端集區中的資源提供輸出網際網路存取能力,請建立 NAT 閘道。
建立公用 IP
使用 az network public-ip create 建立輸出連線的單一 IP。
az network public-ip create \
--resource-group CreatePubLBQS-rg \
--name myNATgatewayIP \
--sku Standard \
--zone 1 2 3
如果要在區域 1 中建立區域性備援的公用 IP 位址,請執行下列命令:
az network public-ip create \
--resource-group CreatePubLBQS-rg \
--name myNATgatewayIP \
--sku Standard \
--zone 1
建立 NAT 閘道資源
使用 az network nat gateway create 來建立 NAT 閘道資源。 在前一個步驟中,已建立的公用 IP 會與 NAT 閘道建立關聯。
az network nat gateway create \
--resource-group CreatePubLBQS-rg \
--name myNATgateway \
--public-ip-addresses myNATgatewayIP \
--idle-timeout 10
將 NAT 閘道與子網路建立關聯
在虛擬網路設定來源子網路,以使用特定 NAT 閘道資源搭配 az network vnet subnet update。
az network vnet subnet update \
--resource-group CreatePubLBQS-rg \
--vnet-name myVNet \
--name myBackendSubnet \
--nat-gateway myNATgateway
安裝 IIS
使用 az vm extension set 在虛擬機器上安裝 IIS,並將預設網站設為電腦名稱。
array=(myVM1 myVM2)
for vm in "${array[@]}"
do
az vm extension set \
--publisher Microsoft.Compute \
--version 1.8 \
--name CustomScriptExtension \
--vm-name $vm \
--resource-group CreatePubLBQS-rg \
--settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
done
測試負載平衡器
若要取得負載平衡器的公用 IP 位址,請使用 az network public-ip show。
將公用 IP 位址複製並貼到您瀏覽器的網址列。
az network public-ip show \
--resource-group CreatePubLBQS-rg \
--name myPublicIP \
--query ipAddress \
--output tsv
清除資源
若不再需要,使用 az group delete 命令來移除資源群組、負載平衡器和所有相關資源。
az group delete \
--name CreatePubLBQS-rg
下一步
在本快速入門中:
您建立了標準或公用負載平衡器
已與兩部虛擬機器連結
已設定負載平衡器流量規則和健全狀態探查
測試了負載平衡器
若要深入了解 Azure Load Balancer,請繼續: