快速入門:使用 Azure CLI 建立虛擬機器擴展集
適用於: ✔️ Linux VM ✔️ Windows VM ✔️ 統一擴展集
注意
下文適用於統一虛擬機器擴展集。 建議您將彈性虛擬機器擴展集用於新的工作負載。 在我們的彈性虛擬機器擴展集概觀中,深入瞭解這個新的協調流程模式。
虛擬機器擴展集可讓您部署和管理一組自動調整的虛擬機器。 您可以手動調整擴展集中的 VM 數目,或定義規則以根據 CPU、記憶體需求或網路流量等資源使用量進行自動調整。 其後,Azure 負載平衡器會將流量分配到擴展集中的多個 VM 執行個體。 在本快速入門中,您會使用 Azure CLI 建立虛擬機器擴展集,並部署應用程式範例。
如果您沒有 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.29 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
建立擴展集
重要
自 2023 年 11 月起,如果未指定協調流程模式,則使用 PowerShell 和 Azure CLI 建立的 VM 擴展集會預設為彈性協調流程模式。 如需此變更的詳細資訊,以及您應該採取的動作,請前往針對 VMSS PowerShell/CLI 客戶的中斷性變更 - Microsoft 社群中樞
請先使用 az group create 建立資源群組,才可以建立擴展集。 下列範例會在 eastus 位置建立名為 myResourceGroup 的資源群組:
az group create --name myResourceGroup --location eastus
現在使用 az vmss create 建立虛擬機器擴展集。 下列範例會建立名為 myScaleSet 的擴展集,其已設定為在套用變更時自動更新,並在 ~/.ssh/id_rsa 中沒有 SSH 金鑰時產生 SSH 金鑰。 如果您需要登入 VM 執行個體,就會用到這些 SSH 金鑰。 若要使用現有的 SSH 金鑰組,請改為使用 --ssh-key-value
參數,並指定您的金鑰所在位置。
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image <SKU image> \
--upgrade-policy-mode automatic \
--admin-username azureuser \
--generate-ssh-keys
建立及設定所有擴展集資源和 VM 需要幾分鐘的時間。
部署範例應用程式
若要測試您的擴展集,請安裝基本的 Web 應用程式。 您可以使用 Azure 自訂指令碼擴充功能來下載及執行會在 VM 執行個體上安裝應用程式的指令碼。 此擴充功能適用於部署後組態、軟體安裝或其他任何組態/管理工作。 如需詳細資訊,請參閱自訂指令碼延伸模組概觀。
使用自訂指令碼擴充功能安裝基本的 NGINX Web 伺服器。 使用 az vmss extension set 套用安裝 NGINX 的自訂指令碼擴充功能,如下所示:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],"commandToExecute":"./automate_nginx.sh"}'
允許流量流向應用程式
建立擴展集後,系統會自動部署 Azure 負載平衡器。 負載平衡器會將流量分配到擴展集中的多個 VM 執行個體。 若要允許流量觸達範例 Web 應用程式,請使用 az network lb rule create 建立負載平衡器規則。 下列範例會建立名為 myLoadBalancerRuleWeb 的規則:
az network lb rule create \
--resource-group myResourceGroup \
--name myLoadBalancerRuleWeb \
--lb-name myScaleSetLB \
--backend-pool-name myScaleSetLBBEPool \
--backend-port 80 \
--frontend-ip-name loadBalancerFrontEnd \
--frontend-port 80 \
--protocol tcp
測試您的擴展集
若要查看有效的擴展集,請在網頁瀏覽器中存取範例 Web 應用程式。 使用 az network public-ip show 取得負載平衡器的公用 IP 位址。 下列範例會取得建立作為擴展集一部分的 myScaleSetLBPublicIP IP 位址︰
az network public-ip show \
--resource-group myResourceGroup \
--name myScaleSetLBPublicIP \
--query '[ipAddress]' \
--output tsv
將負載平衡器的公用 IP 位址輸入網頁瀏覽器中。 負載平衡器會將流量散發至您的其中一個 VM 執行個體,如下列範例所示:
清除資源
若不再需要,您可以使用 az group delete 移除資源群組、擴展集和所有相關資源,如下所示。 --no-wait
參數不會等待作業完成,就會將控制項傳回給提示字元。 --yes
參數會確認您想要刪除資源,而不另外對您提示將要進行此作業。
az group delete --name myResourceGroup --yes --no-wait
下一步
在此快速入門中,您建立了基本的擴展集,並使用自訂指令碼擴充功能,在 VM 執行個體上安裝基本的 NGINX Web 伺服器。 若要深入了解,請繼續執行有關於如何建立和管理 Azure 虛擬機器擴展集的教學課程。