教學課程:使用 Azure CLI 建立和管理虛擬機器擴展集

虛擬機器擴展集可讓您部署和管理一組虛擬機器。 在虛擬機器擴展集的整個生命週期中,您可能需要執行一或多個管理工作。 在本教學課程中,您將了解如何:

  • 建立資源群組
  • 建立虛擬機器擴展集
  • 擴充和縮減
  • 停止、啟動和重新啟動 VM 執行個體

如果您沒有 Azure 帳戶,請在開始之前建立 免費帳戶 。

先決條件

本文需要 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_D2s_v5",
  },
  "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 執行個體大小的擴展集

當您在教學課程開始時建立一個擴展集,Azure CLI 使用了目前雲端的預設 VM SKU,因為您沒有指定 --vm-sku。 在Azure公有雲中,預設是Standard_D2s_v5。 在 AzureUSGovernment 中,預設值仍維持 Standard_D1_v2。 您可以根據 az vm list-sizes 的輸出來指定不同的 VM 執行個體大小。 以下範例建立一個尺度集,參數 --vm-sku 指定虛擬機實例大小為 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 大小
  • 手動調整擴展集
  • 執行常見的擴展集管理工作,例如停止、啟動和重新啟動擴展集

前進至下一個教學課程,以了解如何連線至您的擴展集執行個體。