共用方式為


教學課程:使用 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_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 大小
  • 手動調整擴展集
  • 執行常見的擴展集管理工作,例如停止、啟動和重新啟動擴展集

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