教學課程 - 使用 Azure PowerShell 建立及管理虛擬機器擴展集
虛擬機器擴展集可讓您部署及管理一組虛擬機器。 在虛擬機器擴展集生命週期期間,您可能需要執行一或多個管理工作。 在本教學課程中,您將了解如何:
- 建立資源群組
- 建立虛擬機器擴展集
- 擴增和縮減
- 停止、啟動和重新啟動 VM 執行個體
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
要啟動 Azure Cloud Shell:
選項 | 範例/連結 |
---|---|
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 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 設定虛擬機器執行個體的系統管理員使用者名稱和密碼:
$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 執行個體
若要重新啟動擴展集的所有 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 大小
- 手動調整擴展集
- 執行常見的擴展集管理工作,例如停止、啟動和重新啟動擴展集
前進至下一個教學課程,以了解如何連線至您的擴展集執行個體。