快速入門:使用 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 入口網站中開啟。
必要條件
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
檢閱範本
本快速入門中使用的範本是來自 Azure 快速入門範本。
範本中定義了下列資源:
- Microsoft.Network/virtualNetworks
- Microsoft.Network/publicIPAddresses
- Microsoft.Network/loadBalancers
- Microsoft.Compute/virtualMachineScaleSets
- Microsoft.Insights/autoscaleSettings
定義擴展集
若要使用範本建立縮放,您可以定義適當的資源。 虛擬機器擴展集資源類型的核心部分是:
屬性 | 屬性描述 | 範例範本值 |
---|---|---|
type | 要建立的 Azure 資源類型 | Microsoft.Compute/virtualMachineScaleSets |
NAME | 擴展集名稱 | myScaleSet |
location | 要建立擴展集的位置 | 美國東部 |
sku.name | 每個擴展集執行個體的 VM 大小 | 標準_A1 |
sku.capacity | 最初要建立的 VM 執行個體數目 | 2 |
upgradePolicy.mode | 發生變更時的 VM 執行個體升級模式 | 自動 |
imageReference | 要用於 VM 執行個體的平台或自訂映像 | Canonical 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 入口網站、載入完整的範本,並提示輸入幾個參數,例如擴展集名稱、執行個體計數和管理員認證。
您也可以使用 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
在網頁瀏覽器中輸入負載平衡器的公用 IP 位址,格式為 http://publicIpAddress:9000/do_work。 負載平衡器會將流量散發至您的其中一個 VM 執行個體,如下列範例所示:
清除資源
若不再需要,您可以使用 az group delete 移除資源群組、擴展集和所有相關資源,如下所示。 --no-wait
參數不會等待作業完成,就會將控制項傳回給提示字元。 --yes
參數會確認您想要刪除資源,而不另外對您提示將要進行此作業。
az group delete --name myResourceGroup --yes --no-wait
下一步
在此快速入門中,您使用 ARM 範本建立了 Linux 擴展集,並使用自訂指令碼延伸模組,在 VM 執行個體上安裝基本的 Python Web 伺服器。 若要深入了解,請繼續執行有關於如何建立和管理 Azure 虛擬機器擴展集的教學課程。