虛擬機器擴展集可讓您部署和管理一組虛擬機器。 在虛擬機器擴展集的整個生命週期中,您可能需要執行一或多個管理工作。 在本教學課程中,您將了解如何:
- 建立資源群組
- 建立虛擬機器擴展集
- 擴充和縮減
- 停止、啟動和重新啟動 VM 執行個體
如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
Azure Cloud Shell
Azure Cloud Shell 是由 Azure 提供的互動式命令行環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell 來處理 Azure 服務。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
若要啟動 Azure Cloud Shell:
| Option | 範例/連結 |
|---|---|
| 選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 |
|
| 請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 |
|
| 選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
|
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 Enter 以執行程式碼或命令。
建立資源群組
Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 必須先建立資源群組,然後才能建立虛擬機器規模設定。 使用 New-AzResourceGroup 命令來建立資源群組。 在此範例中,會在 EastUS 區域中建立名為 myResourceGroup 的資源群組。
New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"
在本教學課程中,當您建立或修改擴展集時,都會指定資源群組名稱。
建立虛擬機器擴展集
首先,使用 Get-Credential 設定 VM 執行個體的系統管理員使用者名稱和密碼:
$cred = Get-Credential
現在使用 New-AzVmss 建立虛擬機器規模設定。 為了將流量散發到個別的虛擬機器執行個體,也會建立負載平衡器。 負載平衡器包含的規則會在 TCP 連接埠 80 上分配流量,同時允許 TCP 連接埠 3389 上的遠端桌面流量以及 TCP 連接埠 5985 上的 PowerShell 遠端處理:
這很重要
自 2023 年 11 月起,如果未指定協調流程模式,則使用 PowerShell 和 Azure CLI 建立的 VM 擴展集會預設為彈性協調流程模式。 如需此變更的詳細資訊,以及您應該採取的動作,請前往針對 VMSS PowerShell/CLI 客戶的重大改變 - Microsoft 社群中樞
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-OrchestrationMode "Flexible" `
-Location "EastUS" `
-Credential $cred
建立及設定所有擴展集資源和 VM 執行個體需要幾分鐘的時間。 為了將流量散發到個別的虛擬機器執行個體,也會建立負載平衡器。
檢視擴展集中的 VM 執行個體
若要檢視虛擬機規模設定中的 VM 執行個體清單,請按照以下方式使用 Get-AzVM:
Get-AzVM -ResourceGroupName "myResourceGroup"
下列範例輸出顯示擴展集中的兩個 VM 執行個體:
ResourceGroupName Name Location VmSize OsType ProvisioningState
----------------- ---- -------- ------ ------ -----------------
myResourceGroup myScaleSet_instance1 eastus Standard_DS1_v2 Windows Succeeded
myResourceGroup myScaleSet_instance2 eastus Standard_DS1_v2 Windows Succeeded
若要檢視特定 VM 執行個體的其他資訊,請使用 Get-AzVM 並指定 VM 名稱。
Get-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
ResourceGroupName : myresourcegroup
Id : /subscriptions/resourceGroups/myresourcegroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1
VmId : d27b5fde-d469-4087-b08f-87d0bd8df786
Name : myScaleSet_instance1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
VirtualMachineScaleSet : {Id}
TimeCreated : 11/16/2022 11:02:02 PM
建立具有特定 VM 執行個體大小的擴展集
當您在教學課程一開始建立擴展集時,您為 VM 執行個體提供了預設的 VM SKU Standard_D1_v2。 您可以使用參數 -VMSize 指定不同的 VM 執行個體大小,以指定 Standard_F1 的 VM 執行個體大小。
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-OrchestrationMode "Flexible" `
-VMSize "Standard_F1" `
-Location "EastUS" `
-Credential $cred
變更擴展集的容量
當您建立擴展集時,預設會部署兩個 VM 執行個體。 若要增加或減少擴展集中的 VM 執行個體數目,您可以手動變更容量。 擴展集會建立或移除所需數目的 VM 執行個體,然後設定負載平衡器以分散流量。
首先,使用 Get-AzVmss 建立擴展集物件,然後指定 sku.capacity 的新值。 若要套用容量變更,請使用 Update-AzVmss。 下列範例會將規模設定中的 VM 執行個體數量設定為 3:
# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
# Set and update the capacity of your scale set
$vmss.sku.capacity = 3
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss
其需要幾分鐘的時間才能更新您擴展集的容量。 若要查看擴展集中目前包含的執行個體數目,請使用 Get-Az:
Get-AzVm -ResourceGroupName "myResourceGroup"
下列範例輸出顯示擴展集的容量現在為 3:
ResourceGroupName Name Location VmSize OsType ProvisioningState
----------------- ---- -------- ------ ------ -----------------
myResourceGroup myScaleSet_instance1 eastus Standard_DS1_v2 Windows Succeeded
myResourceGroup myScaleSet_instance2 eastus Standard_DS1_v2 Windows Succeeded
myResourceGroup myScaleSet_instance3 eastus Standard_DS1_v2 Windows Succeeded
停止和解除分配規模設定中的 VM 執行個體
若要停止個別 VM 執行個體,請使用 Stop-AzVm 並指定執行個體名稱。
Stop-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
根據預設,已停止的 VM 會解除配置,且不會產生計算費用。 如果您希望 VM 在停止時保持佈建狀態,請將參數新增至 -StayProvisioned 上述命令。 保持佈建的已停止 VM 會產生一般計算費用。
啟動擴展集中的 VM 執行個體
若要啟動擴展集中的所有 VM 執行個體,請使用 Start-AzVmss。
Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
若要在擴展集中啟動個別 VM 執行個體,請使用 Start-AzVM 並指定執行個體名稱。
Start-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
重新啟動虛擬機器規模設定中的執行個體
若要重新啟動擴展集中的所有 VM,請使用 Restart-AzVmss。
Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
若要重新啟動個別執行個體,請使用 [Restart-AzVM] 並指定執行個體名稱。
Restart-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
清理資源
當您刪除資源群組時,也會刪除其中包含的所有資源,例如 VM 執行個體、虛擬網路和磁碟。 此 -Force 參數確認您想要刪除資源,而不會有額外的提示。
-AsJob 參數在不等待作業完成的情況下,會將控制權返回給提示字元。
Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob
後續步驟
在本教學課程中,您已瞭解如何使用 Azure PowerShell 執行一些基本擴展集建立和管理工作:
- 建立資源群組
- 建立擴展集
- 檢視和使用特定 VM 大小
- 手動調整擴展集
- 執行常見的擴展集管理工作,例如停止、啟動和重新啟動擴展集
前進至下一個教學課程,以了解如何連線至您的擴展集執行個體。