教學課程 - 使用 Azure CLI 建立及管理虛擬機器擴展集
虛擬機器擴展集可讓您部署及管理一組虛擬機器。 在虛擬機器擴展集生命週期期間,您可能需要執行一或多個管理工作。 在本教學課程中,您將了解如何:
- 建立資源群組
- 建立虛擬機器擴展集
- 擴增和縮減
- 停止、啟動和重新啟動 VM 執行個體
如果您沒有 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,就已安裝最新版本。
建立資源群組
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 執行個體。 您可以在使用 az vmss create 時指定 --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 執行個體
若要重新啟動擴展集的一或多個 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 大小
- 手動調整擴展集
- 執行常見的擴展集管理工作,例如停止、啟動和重新啟動擴展集
前進至下一個教學課程,以了解如何連線至您的擴展集執行個體。