練習 - 在 Azure 入口網站中部署擴展集

已完成

在範例案例中,您確定使用擴展集,為貨運公司執行 Web 應用程式。 貨運公司可以使用擴展集,在工作負載有所不同時,為客戶維持較短的回應時間。

您的第一個工作是建立擴展集。 將其設定為執行網頁伺服器,在此案例中為 nginx。 在您正確地設定擴展集之後,請部署您的 Web 應用程式。 然後,設定一個健全狀態探查,Azure 用來驗證擴展集中每部虛擬機器 (VM) 的可用性。 最後,透過從網頁瀏覽器傳送要求來測試擴展集。

注意

此練習為選擇性項目。 若您沒有 Azure 帳戶,您可以閱讀全部的指示,了解如何使用 REST API 來擷取計量。

若您想要完成此練習,但沒有 Azure 訂用帳戶,或是不想要使用自己的帳戶,請在繼續進行之前先建立一個免費帳戶

部署虛擬機器擴展集

  1. 登入 Azure 入口網站並開啟 Azure Cloud Shell。

  2. 在 Cloud Shell 視窗頂端的工具列中,選取 [設定]>[前往傳統版本]

  3. 在 Cloud Shell 中,啟動程式碼編輯器,並建立名為 cloud-init.yaml 的檔案。

    code cloud-init.yaml
    
  4. 將下列文字新增至該檔案:

    #cloud-config
    package_upgrade: true
    packages:
      - nginx
    write_files:
      - owner: www-data:www-data
      - path: /var/www/html/index.html
        content: |
            Hello world from Virtual Machine Scale Set !
    runcmd:
      - service nginx restart
    

    此檔案包含在擴展集的 VM 上安裝 nginx 的設定資訊。

  5. 選取 Ctrl+S 以儲存檔案,然後選取 Ctrl+Q 以關閉程式碼編輯器。

  6. 請執行下列命令,為您的擴展集建立新的資源群組:

    az group create --location eastus --name myResourceGroup
    
  7. 執行下列命令來建立虛擬機器擴展集:

    az vmss create \
      --resource-group myResourceGroup \
      --name webServerScaleSet \
      --image Ubuntu2204 \
      --upgrade-policy-mode automatic \
      --custom-data cloud-init.yaml \
      --admin-username azureuser \
      --generate-ssh-keys
    

    根據預設,新的虛擬機器擴展集具有兩個執行個體與一個負載平衡器。

    注意

    custom-data 旗標會在建立 VM 之後指定 VM 設定應使用 cloud-init.yaml 檔案中的設定。 當第一次安裝機器時,您可以使用 cloud-init 檔案來安裝其他套件、設定安全性,以及寫入檔案。

    如需詳細資訊,請參閱 Azure 中 VM 的 Cloud-init 支援 \(部分機器翻譯\)。

設定虛擬機器擴展集

  1. 執行下列命令,將健康情況探查新增至負載平衡器:

    az network lb probe create \
      --lb-name webServerScaleSetLB \
      --resource-group myResourceGroup \
      --name webServerHealth \
      --port 80 \
      --protocol Http \
      --path /
    

    健康情況探查會透過連接埠 80 對網站根目錄執行 ping。 如果網站未回應,便會將該伺服器視為無法可用。 負載平衡器不會將流量路由至伺服器。

  2. 執行下列命令來設定負載平衡器,以將 HTTP 流量路由傳送至擴展集中的執行個體:

    az network lb rule create \
      --resource-group myResourceGroup \
      --name webServerLoadBalancerRuleWeb \
      --lb-name webServerScaleSetLB \
      --probe-name webServerHealth \
      --backend-pool-name webServerScaleSetLBBEPool \
      --backend-port 8080 \
      --frontend-ip-name loadBalancerFrontEnd \
      --frontend-port 8080 \
      --protocol tcp
    

測試虛擬機器擴展集

  1. 在 Azure 入口網站中,從側邊功能表選取 [資源群組]>[myResourceGroup]

  2. 選取 webServerScaleSet 虛擬機器擴展集。

  3. 在 [概觀] 頁面上,記下虛擬機器擴展集的公用 IP 位址。

    Azure 入口網站的螢幕擷取畫面,其中顯示虛擬機器擴展集的 [概觀] 頁面。

  4. 選取 [執行個體]。 確認擴展集包含兩個執行中的 VM。

    Azure 入口網站的螢幕擷取畫面,其中顯示虛擬機器擴展集的執行個體。

  5. 選取一個執行個體並瀏覽至 [屬性] 頁面。 確認 VM 正在 Ubuntu Linux 上執行。

    Azure 入口網站的螢幕擷取畫面,其中顯示虛擬機器擴展集的作業系統。

  6. 在您的網頁瀏覽器中,瀏覽至擴展集的公用 IP 位址。 驗證訊息 [來自虛擬機擴展集的 Hello World!] 是否出現。

    在網頁瀏覽器中執行 Web 應用程式且具有想要訊息的螢幕擷取畫面。