虛擬機器擴展集可讓您部署和管理一組虛擬機器。 在虛擬機器擴展集的整個生命週期中,您可能需要執行一或多個管理工作。 在本教學課程中,您將了解如何:
- 建立資源群組
- 建立虛擬機器擴展集
- 擴充和縮減
- 停止、啟動和重新啟動 VM 執行個體
如果您沒有 Azure 帳戶,請在開始之前建立 免費帳戶 。
先決條件
使用 Azure Cloud Shell 中的 Bash 環境。 如需詳細資訊,請參閱開始使用 Azure Cloud Shell。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱 如何在 Docker 容器中執行 Azure CLI。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱 使用 Azure CLI 向 Azure 進行驗證。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能的詳細資訊,請參閱 使用和管理 Azure CLI 的擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
本文需要 2.0.29 版或更新版本的 Azure CLI。 如果使用 Azure Cloud Shell,則已安裝最新版本。
建立資源群組
Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 必須先建立資源群組,然後才能建立虛擬機器規模設定。 使用 az group create 命令來建立資源群組。 在此範例中,會在 eastus 區域中建立名為 myResourceGroup 的資源群組。
az group create --name myResourceGroup --location eastus
在本教學課程中,當您建立或修改擴展集時,都會指定資源群組名稱。
建立擴展集
這很重要
自 2023 年 11 月起,如果未指定協調流程模式,則使用 PowerShell 和 Azure CLI 建立的 VM 擴展集會預設為彈性協調流程模式。 如需此變更的詳細資訊,以及您應該採取的動作,請前往針對 VMSS PowerShell/CLI 客戶的重大改變 - Microsoft 社群中樞
您可以使用 az vmss create 命令建立虛擬機器擴展集。 下列範例會建立名為 myScaleSet 的擴展集,以及產生 SSH 金鑰 (如果不存在):
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--orchestration-mode flexible \
--image <SKU image> \
--admin-username azureuser \
--generate-ssh-keys
建立及設定所有擴展集資源和 VM 執行個體需要幾分鐘的時間。 為了將流量散發到個別的虛擬機器執行個體,也會建立負載平衡器。
檢視虛擬機擴展組中 VM 執行個體的相關資訊
若要檢視規模組中的 VM 執行個體清單,請使用 az vm list,如下所示:
az vm list --resource-group myResourceGroup --output table
下列範例輸出顯示擴展集中的兩個 VM 執行個體:
Name ResourceGroup Location Zones
------------------- --------------- ---------- -------
myScaleSet_instance1 myResourceGroup eastus
myScaleSet_instance2 myResourceGroup eastus
若要查看特定 VM 執行個體的其他資訊,請使用 az vm show 並指定 VM 名稱。
az vm show --resource-group myResourceGroup --name myScaleSet_instance1
{
"hardwareProfile": {
"vmSize": "Standard_DS1_v2",
},
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1",
"location": "eastus",
"name": "myScaleSet_instance1",
"networkProfile": {
"networkInterfaces": [
{
"deleteOption": "Delete",
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-0396c71c",
"primary": true,
"resourceGroup": "myResourceGroup"
}
]
},
"osProfile": {
"adminUsername": "azureuser",
"allowExtensionOperations": true,
"computerName": "myScaleSN30BP1",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"enableVmAgentPlatformUpdates": false,
"patchSettings": {
"assessmentMode": "ImageDefault",
"patchMode": "ImageDefault"
},
"provisionVmAgent": true,
"ssh": {
"publicKeys": [
{
"keyData": "ssh-rsa",
"path": "/home/azureuser/.ssh/authorized_keys"
}
]
}
},
"requireGuestProvisionSignal": true,
"secrets": [],
},
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"storageProfile": {
"dataDisks": [],
"imageReference": {
"exactVersion": "XXXXX",
"offer": "myOffer",
"publisher": "myPublisher",
"sku": "mySKU",
"version": "latest"
},
"osDisk": {
"caching": "ReadWrite",
"createOption": "FromImage",
"deleteOption": "Delete",
"diskSizeGb": 30,
"managedDisk": {
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myScaleSet_instance1_disk1",
"resourceGroup": "myResourceGroup",
"storageAccountType": "Premium_LRS"
},
"name": "myScaleSet_instance1_disk1",
"osType": "Linux",
}
},
"tags": {},
"timeCreated": "2022-11-16T20:32:15.024581+00:00",
"type": "Microsoft.Compute/virtualMachines",
"virtualMachineScaleSet": {
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet",
"resourceGroup": "myResourceGroup"
},
}
建立具有特定 VM 執行個體大小的擴展集
當您在教學課程一開始建立擴展集時,您為 VM 執行個體提供了預設的 VM SKU Standard_D1_v2。 您可以根據 az vm list-sizes 的輸出來指定不同的 VM 執行個體大小。 下列範例將使用 --vm-sku 參數來建立一個規模組,以指定 VM 執行個體大小為 Standard_F1。 由於建立和設定所有擴展集資源和 VM 執行個體需要幾分鐘的時間,因此您不需要部署下列擴展集:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--orchestration-mode flexible \
--image <SKU image> \
--vm-sku Standard_F1 \
--admin-user azureuser \
--generate-ssh-keys
變更擴展集的容量
當您在教學課程一開始建立擴展集時,您依預設部署了兩個 VM 執行個體。 您可以使用 --instance-count 指定參數,以變更使用擴展集建立的執行個體數目。 若要增加或減少現有擴展集中的 VM 執行個體數目,您可以手動變更容量。 擴展集會建立或移除所需數目的 VM 執行個體,然後設定負載平衡器以分散流量。
若要手動增加或減少規模集中的 VM 執行個體數目,請使用 az vmss scale。 下列範例會將規模設定中的 VM 執行個體數量設定為 3:
az vmss scale \
--resource-group myResourceGroup \
--name myScaleSet \
--new-capacity 3
其需要幾分鐘的時間才能更新您擴展集的容量。 若要查看您在擴展集中目前擁有的執行個體數目,請使用 az vm list 並查詢相關聯的資源群組。
az vm list --resource-group myResourceGroup --output table
Name ResourceGroup Location Zones
------------------- --------------- ---------- -------
myScaleSet_instance1 myResourceGroup eastus
myScaleSet_instance2 myResourceGroup eastus
myScaleSet_instance3 myResourceGroup eastus
停止和解除分配規模設定中的 VM 執行個體
若要停止擴展集中的所有 VM 執行個體,請使用 az vmss stop。
az vmss stop \
--resource-group myResourceGroup \
--name myScaleSet
若要停止擴展集中的個別 VM 執行個體,請使用 az vm stop 並指定執行個體名稱。
az vm stop \
--resource-group myResourceGroup \
--name myScaleSet_instance1
已停止的 VM 執行個體會維持配置,並繼續產生計算費用。 如果您想要解除配置 VM 執行個體,而且只產生儲存體費用,請使用 az vm deallocate 並指定您要解除配置的執行個體名稱。
az vm deallocate \
--resource-group myResourceGroup \
--name myScaleSet_instance1
啟動擴展集中的 VM 執行個體
若要啟動擴展集中的所有 VM 執行個體,請使用 az vmss start。
az vmss start \
--resource-group myResourceGroup \
--name myScaleSet
若要在擴展集中啟動個別 VM 執行個體,請使用 az vm start 並指定執行個體名稱。
az vm start \
--resource-group myResourceGroup \
--name myScaleSet_instance1
重新啟動虛擬機器規模設定中的執行個體
若要重新啟動擴展集中的所有 VM 執行個體,請使用 az vmss restart。
az vmss restart \
--resource-group myResourceGroup \
--name myScaleSet
若要重新啟動擴展集中的個別 VM 執行個體,請使用 az vm restart 並指定執行個體名稱。
az vm restart \
--resource-group myResourceGroup \
--name myScaleSet_instance1
清理資源
當您刪除資源群組時,也會刪除其中包含的所有資源,例如 VM 執行個體、虛擬網路和磁碟。
--no-wait 參數在不等待作業完成的情況下,會將控制權返回給提示字元。 此 --yes 參數確認您想要刪除資源,而不會有額外的提示。
az group delete --name myResourceGroup --no-wait --yes
後續步驟
在本教學課程中,您已瞭解如何使用 Azure CLI 執行一些基本擴展集建立和管理工作:
- 建立資源群組
- 建立擴展集
- 檢視和使用特定 VM 大小
- 手動調整擴展集
- 執行常見的擴展集管理工作,例如停止、啟動和重新啟動擴展集
前進至下一個教學課程,以了解如何連線至您的擴展集執行個體。