快速入門: 使用 Azure CLI 建立內部負載平衡器以負載平衡 VM

使用 Azure CLI 建立內部負載平衡器和兩部虛擬機器,以開始使用 Azure Load Balancer。 其他資源包括 Azure Bastion、NAT 閘道、虛擬網路和所需的子網路。

針對內部負載平衡器部署的資源圖表。

如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶

必要條件

  • 本快速入門需要 2.0.28 版或更新版本的 Azure CLI。 若您使用的是 Azure Cloud Shell,即已安裝最新版本。

建立資源群組

Azure 資源群組是一種邏輯容器,您可在其中部署與管理 Azure 資源。

使用 az group create 來建立資源群組。

    az group create \
      --name CreateIntLBQS-rg \
      --location westus3

當您建立內部負載平衡器時,會將虛擬網路設定為負載平衡器的網路。

建立虛擬網路

請先建立支援的虛擬網路和子網路,才可部署 VM 並測試您的負載平衡器。 虛擬網路和子網路會包含本文稍後部署的資源。

使用 az network vnet create 建立虛擬網路。

  az network vnet create \
    --resource-group CreateIntLBQS-rg \
    --location westus3 \
    --name myVNet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.1.0.0/24

建立 Azure Bastion 主機

您會在本範例中建立 Azure Bastion 主機。 本文稍後會使用 Azure Bastion 主機,來安全地管理虛擬機器並測試負載平衡器部署。

重要

無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格SKU。 如果您要將 Bastion 部署為教學課程或測試的一部分,建議您在完成使用之後刪除此資源。

建立堡壘公用 IP 位址

使用 az network public-ip create 建立 Azure Bastion 主機的公用 IP 位址。

az network public-ip create \
    --resource-group CreateIntLBQS-rg  \
    --name myBastionIP \
    --sku Standard \
    --zone 1 2 3

建立 Bastion 子網路

使用 az network vnet subnet create 建立子網路。

az network vnet subnet create \
    --resource-group CreateIntLBQS-rg  \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.1.1.0/27

建立堡壘主機

使用 az network bastion create 建立主機。

az network bastion create \
    --resource-group CreateIntLBQS-rg  \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location westus3

部署 Azure Bastion 主機需要幾分鐘的時間。

建立負載平衡器

本節將詳細說明如何建立及設定下列負載平衡器元件:

  • 前端 IP 集區,可接收負載平衡器上的連入網路流量

  • 後端 IP 集區,前端集區在其中傳送負載平衡網路流量

  • 健康狀態探查,可判斷後端 VM 執行個體的健康狀態

  • 負載平衡器規則,可定義如何將流量分散至 VM

建立負載平衡器資源

使用 az network lb create 建立內部負載平衡器。

  az network lb create \
    --resource-group CreateIntLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --vnet-name myVNet \
    --subnet myBackendSubnet \
    --backend-pool-name myBackEndPool \
    --frontend-ip-name myFrontEnd

建立健康狀態探查

健全狀況探查會檢查所有虛擬機器執行個體,確認可以傳送網路流量。

已從負載平衡器移除具有失敗探查檢查的虛擬機器。 解決失敗情況之後,系統會將虛擬機器新增回負載平衡器。

使用 az network lb probe create 建立健康狀態探查。

  az network lb probe create \
    --resource-group CreateIntLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHealthProbe \
    --protocol tcp \
    --port 80

建立負載平衡器規則

負載平衡器規則定義:

  • 傳入流量的前端 IP 設定

  • 接收流量的後端 IP 集區

  • 所需的來源和目的地連接埠

使用 az network lb rule create 建立負載平衡器規則。

  az network lb rule create \
    --resource-group CreateIntLBQS-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 \
    --idle-timeout 15 \
    --enable-tcp-reset true

建立網路安全性群組

如果是標準負載平衡器,後端集區中的 VM 都需要有屬於網路安全性群組的網路介面。

若要建立網路安全性群組,請使用 az network nsg create

  az network nsg create \
    --resource-group CreateIntLBQS-rg \
    --name myNSG

建立網路安全性群組規則

若要建立網路安全性群組規則,使用 az network nsg rule create

  az network nsg rule create \
    --resource-group CreateIntLBQS-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

建立後端伺服器

在這個小節中,您會建立:

  • 虛擬機器的兩個網路介面

  • 兩個虛擬機器,作為負載平衡器的伺服器

建立虛擬機器的網路介面

使用 az network nic create 建立兩個網路介面。

  array=(myNicVM1 myNicVM2)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group CreateIntLBQS-rg \
        --name $vmnic \
        --vnet-name myVNet \
        --subnet myBackEndSubnet \
        --network-security-group myNSG
  done

建立虛擬機器

使用 az vm create 建立虛擬機器。

  array=(1 2)
  for n in "${array[@]}"
  do
    az vm create \
    --resource-group CreateIntLBQS-rg \
    --name myVM$n \
    --nics myNicVM$n \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone $n \
    --no-wait
  done

部署 VM 可能需要幾分鐘的時間。

注意

無論是未獲指派公用 IP 位址的 VM,或位於內部基本 Azure 負載平衡器後端集區的 VM,Azure 都會為其提供預設輸出存取 IP。 預設輸出存取 IP 機制能提供無法自行設定的輸出 IP 位址。

發生下列其中一個事件時,會停用預設輸出存取 IP:

  • 對 VM 指派了公用 IP 位址。
  • 在標準負載平衡器的後端集區中放置了 VM (無論有沒有輸出規則)。
  • Azure NAT 閘道資源會指派給 VM 的子網。

您在彈性協調流程模式中使用虛擬機器擴展集建立的 VM 沒有預設輸出存取。

如需 Azure 中輸出連線的詳細資訊,請參閱 Azure 中的預設輸出存取針對輸出連線,使用來源網路位址轉譯 (SNAT)

將虛擬機器新增至後端集區

使用 az network nic ip-config address-pool add 將虛擬機器新增至後端集區。

  array=(VM1 VM2)
  for vm in "${array[@]}"
  do
  az network nic ip-config address-pool add \
   --address-pool myBackendPool \
   --ip-config-name ipconfig1 \
   --nic-name myNic$vm \
   --resource-group CreateIntLBQS-rg \
   --lb-name myLoadBalancer
  done

建立 NAT 閘道

若要為後端集區中的資源提供輸出網際網路存取能力,請建立 NAT 閘道。

建立公用 IP

使用 az network public-ip create 建立輸出連線的單一 IP。

  az network public-ip create \
    --resource-group CreateIntLBQS-rg \
    --name myNATgatewayIP \
    --sku Standard \
    --zone 1 2 3

建立 NAT 閘道資源

使用 az network nat gateway create 來建立 NAT 閘道資源。 在前一個步驟中,已建立的公用 IP 會與 NAT 閘道建立關聯。

  az network nat gateway create \
    --resource-group CreateIntLBQS-rg \
    --name myNATgateway \
    --public-ip-addresses myNATgatewayIP \
    --idle-timeout 10

將 NAT 閘道與子網路建立關聯

在虛擬網路設定來源子網路,以使用特定 NAT 閘道資源搭配 az network vnet subnet update

  az network vnet subnet update \
    --resource-group CreateIntLBQS-rg \
    --vnet-name myVNet \
    --name myBackendSubnet \
    --nat-gateway myNATgateway

建立測試虛擬機器

使用 az network nic create 建立網路介面。

  az network nic create \
    --resource-group CreateIntLBQS-rg \
    --name myNicTestVM \
    --vnet-name myVNet \
    --subnet myBackEndSubnet \
    --network-security-group myNSG

使用 az vm create 建立虛擬機器。

  az vm create \
    --resource-group CreateIntLBQS-rg \
    --name myTestVM \
    --nics myNicTestVM \
    --image Win2019Datacenter \
    --admin-username azureuser \
    --no-wait

您可能需要等候幾分鐘的時間,才能部署虛擬機器。

安裝 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 CreateIntLBQS-rg \
       --settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
  done

測試負載平衡器

  1. 登入 Azure 入口網站。

  2. 在 [概觀] 頁面上尋找負載平衡器的私人 IP 位址。 在左側功能表中,依序選取 [所有服務]> [所有資源]> [myLoadBalancer]

  3. myLoadBalancer 的 [概觀] 中,複製私人 IP 位址旁的位址。 如果看不到 [私人 IP 位址],請選取 [查看更多]

  4. 在左側功能表中,依序選取 [所有服務]> [所有資源]。 從資源清單的 CreateIntLBQS-rg 資源群組中,選取 [myTestVM]

  5. 在 [概觀] 頁面上,依序選取 [連線]> [Bastion]

  6. 輸入您在建立 VM 時所輸入的使用者名稱和密碼。

  7. myTestVM 上開啟 Internet Explorer

  8. 在瀏覽器的網址列中,輸入上一個步驟中的 IP 位址。 IIS Web 伺服器的預設頁面會顯示在瀏覽器上。

    瀏覽器網址列中IP位址的螢幕快照。

清除資源

若不再需要資源時,請使用 az group delete 命令來移除資源群組、負載平衡器和所有相關資源。

  az group delete \
    --name CreateIntLBQS-rg

下一步

在本快速入門中:

  • 您已建立內部負載平衡器

  • 已與兩部虛擬機器連結

  • 已設定負載平衡器流量規則和健全狀態探查

  • 測試了負載平衡器

若要深入了解 Azure Load Balancer,請繼續: