快速入門:使用ARM範本建立Linux虛擬機擴展集

適用於: ✔️ Linux VM ✔️ 統一擴展集

注意

下列文章適用於統一 虛擬機器擴展集。 建議您將彈性虛擬機器擴展集用於新的工作負載。 在我們的彈性虛擬機器擴展集概觀中,深入了解這個新的協調流程模式。

虛擬機擴展集可讓您部署和管理一組自動調整虛擬機。 您可以手動調整擴展集中的 VM 數目,或根據 CPU、記憶體需求或網路流量等資源使用量來定義自動調整的規則。 然後,Azure 負載平衡器會將流量分散到擴展集中的 VM 實例。 在本快速入門中,您會建立虛擬機擴展集,並使用 Azure Resource Manager 範本部署範例應用程式(ARM 範本)。

Azure Resource Manager 範本是 JavaScript 物件表示法 (JSON) 檔案,可定義專案的基礎結構和組態。 範本使用宣告式語法。 您不需要撰寫程式設計命令順序來建立部署,即可描述預定的部署。

ARM 範本可讓您部署相關資源的群組。 在單一範本中,您可以建立虛擬機擴展集、安裝應用程式,以及設定自動調整規則。 使用變數和參數時,可以重複使用此範本來更新現有的擴展集,或建立其他擴展集。 您可以透過 Azure 入口網站、Azure CLI 或 Azure PowerShell,或從持續整合/持續傳遞 (CI/CD) 管線部署範本。

如果您的環境符合必要條件,而且您很熟悉 ARM 範本,請選取 [部署至 Azure] 按鈕。 範本會在 Azure 入口網站中開啟。

Button to deploy the Resource Manager template to Azure.

必要條件

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

檢閱範本

本快速入門中使用的範本是來自 Azure 快速入門範本

範本中定義了下列資源:

定義擴展集

若要使用範本建立縮放比例,您可以定義適當的資源。 虛擬機擴展集資源類型的核心部分包括:

屬性 屬性的描述 範例範本值
type 要建立的 Azure 資源類型 Microsoft.Compute/virtualMachineScaleSets
NAME 擴展集名稱 myScaleSet
location 建立擴展集的位置 美國東部
sku.name 每個擴展集實例的 VM 大小 標準_A1
sku.capacity 要最初建立的 VM 實例數目 2
upgradePolicy.mode 發生變更時 VM 實例升級模式 自動
imageReference 要用於 VM 實例的平臺或自定義映像 標準 Ubuntu Server 16.04-LTS
osProfile.computerNamePrefix 每個 VM 實例的名稱前置詞 myvmss
osProfile.adminUsername 每個 VM 實例的用戶名稱 azureuser
osProfile.adminPassword 每個 VM 實例的密碼 P@ssw0rd!

若要自定義擴展集範本,您可以變更 VM 大小或初始容量。 另一個選項是使用不同的平臺或自定義映像。

新增範例應用程式

若要測試擴展集,請安裝基本的 Web 應用程式。 當您部署擴展集時,VM 擴充功能可以提供部署後設定和自動化工作,例如安裝應用程式。 您可以從 Azure 儲存體或 GitHub 下載指令碼,或是在擴充功能執行階段將指令碼提供給 Azure 入口網站。 若要將擴充功能套用至擴展集,請將 extensionProfile 區段新增至上述資源範例。 延伸模組設定檔通常會定義下列屬性:

  • 擴充功能類型
  • 延伸模組發行者
  • 延伸模組版本
  • 設定或安裝腳本的位置
  • 在 VM 實例上執行的命令

此範本會使用自定義腳本擴充功能來安裝 Bottle、Python Web 架構和簡單的 HTTP 伺服器。

fileUris - installserver.sh 和 workserver.py定義了兩個腳本。 這些檔案會從 GitHub 下載,然後 commandToExecute 會執行 bash installserver.sh 以安裝及設定應用程式。

部署範本

您可以選取下列 [部署至 Azure ] 按鈕來部署範本。 此按鈕會開啟 Azure 入口網站、載入完整的範本,並提示輸入幾個參數,例如擴展集名稱、實例計數和系統管理員認證。

Button to deploy the Resource Manager template to Azure.

您也可以使用 Azure CLI 來部署 Resource Manager 範本:

# Create a resource group
az group create --name myResourceGroup --location EastUS

# Deploy template into resource group
az deployment group create \
    --resource-group myResourceGroup \
    --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/application-workloads/python/vmss-bottle-autoscale/azuredeploy.json

回答提示,以提供 VM 實例的擴展集名稱、實例計數和管理員認證。 擴展集和支持資源需要幾分鐘的時間才能建立。

驗證部署

若要查看您的擴充集運作情形,請在網頁瀏覽器中存取範例 Web 應用程式。 使用 az network public-ip list 取得負載平衡器的公用 IP 位址,如下所示:

az network public-ip list \
    --resource-group myResourceGroup \
    --query [*].ipAddress -o tsv

以格式 http://publicIpAddress:9000/do_work輸入負載平衡器的公用IP位址至網頁瀏覽器。 負載平衡器會將流量散發至您的其中一個 VM 執行個體,如下列範例所示:

Default web page in NGINX

清除資源

不再需要時,您可以使用 az group delete 來移除資源群組、擴展集和所有相關資源,如下所示。 --no-wait 參數不會等待作業完成,就會將控制項傳回給提示字元。 --yes 參數會確認您想要刪除資源,而不另外對您提示將要進行此作業。

az group delete --name myResourceGroup --yes --no-wait

下一步

在本快速入門中,您已使用ARM樣本建立Linux擴展集,並使用自定義腳本擴充功能在VM實例上安裝基本的 Python 網頁伺服器。 若要深入瞭解,請繼續進行教學課程,以瞭解如何建立和管理 Azure 虛擬機器擴展集。