(預覽版將虛擬機器擴展集與容量保留群組建立關聯)

虛擬機器擴展集有兩種模式:

  • 統一協調流程模式: 在此模式中,虛擬機器擴展集會使用 VM 設定檔或範本來擴大為所需的容量。 雖然有管理或自訂個別 VM 實例的能力,但統一使用相同的 VM 實例。 這些實例會透過虛擬機器擴展集 VM Api 公開,並不會與標準 Azure IaaS VM API 命令相容。 因為擴展集會執行所有實際的 VM 作業,所以保留會直接與虛擬機器擴展集相關聯。 一旦擴展集與保留相關聯之後,所有後續的 VM 配置都會針對保留進行。
  • 彈性的協調流程模式: 在此模式中,您會獲得更多的彈性來管理個別的虛擬機器擴展集 VM 實例,因為它們可以使用標準的 Azure IaaS VM Api,而不是使用擴展集介面。 在公開預覽期間,此模式無法使用容量保留。

若要深入瞭解這些模式,請移至 虛擬機器擴展集的協調流程模式。 本文的其餘部分將討論如何將統一的虛擬機器擴展集與容量保留群組產生關聯。

重要

容量保留目前處於公開預覽狀態。 此預覽版本是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

擴展集在統一協調流程中的限制

  • 若要讓統一協調流程中的虛擬機器擴展集與容量保留相容,則 singlePlacementGroup 必須將屬性設定為 False
  • 容量保留不支援多重區域統一擴展集的 靜態固定分配 可用性選項。 此選項需要使用5個容錯網域,但保留僅支援最多3個容錯網域的一般用途大小。 建議的方法是使用 最大分配 選項,將 vm 分散到每個區域內盡可能多的 fd。 如有需要,請將自訂容錯網域設定設定為3或更少。

使用容量保留時,有一些其他限制。 如需完整清單,請參閱 容量保留的總覽

將新的虛擬機器擴展集與容量保留群組建立關聯

若要將新的統一虛擬機器擴展集與容量保留群組建立關聯,請將下列 PUT 要求建立至 Microsoft. 計算 提供者:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01

capacityReservationGroup在中新增屬性, virtualMachineProfile 如下所示:

{ 
    "name": "<VMScaleSetName>", 
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}", 
    "type": "Microsoft.Compute/virtualMachineScaleSets", 
    "location": "eastus", 
    "sku": { 
        "name": "Standard_D2s_v3", 
        "tier": "Standard", 
        "capacity": 3 
}, 
"properties": { 
    "virtualMachineProfile": { 
        "capacityReservation": { 
            "capacityReservationGroup":{ 
                "id":"subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroup/{CapacityReservationGroupName}" 
            } 
         }, 
        "osProfile": { 
            … 
        }, 
        "storageProfile": { 
            … 
        }, 
        "networkProfile": { 
            …,
            "extensionProfile": { 
                … 
            } 
        } 
    } 

將現有的虛擬機器擴展集與容量保留群組建立關聯

針對公開預覽版,為了將現有的統一虛擬機器擴展集與容量保留群組建立關聯,必須先解除配置擴展集,然後在重新配置時進行關聯。 這可確保所有擴展集 Vm 在重新配置時都會耗用容量保留。

升級原則的重要注意事項

  • 自動升級 –在此模式中,擴展集 VM 實例會自動與容量保留群組建立關聯,而不需要您採取任何進一步的動作。 重新配置擴展集 Vm 時,它們會開始耗用保留容量。
  • 輪流升級 –在此模式中,擴展集 VM 實例會與容量保留群組相關聯,而不需要您採取任何進一步的動作。 不過,它們會以批次方式更新,並在其間進行選擇性的暫停時間。 重新配置擴展集 Vm 時,它們會開始耗用保留容量。
  • 手動升級 –在此模式中,當虛擬機器擴展集附加至容量保留群組時,不會對擴展集 VM 實例執行任何動作。 您必須 使用最新的擴展集模型來進行升級,以對每個擴展集 VM 進行個別更新。
  1. 解除配置虛擬機器擴展集。

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/deallocate?api-version=2021-04-01
    
  2. capacityReservationGroup 屬性新增至擴展集模型。 將下列 PUT 要求建立到 Microsoft。計算 提供者:

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01
    

    在要求主體中,包括 capacityReservationGroup 屬性:

    "location": "eastus",
    "properties": {
        "virtualMachineProfile": {
             "capacityReservation": {
                      "capacityReservationGroup": {
                            "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}"
                      }
                }
        }
    }
    

使用實例視圖來查看虛擬機器擴展集關聯

當統一的虛擬機器擴展集與容量保留群組相關聯之後,所有後續的 VM 配置都會針對容量保留進行。 Azure 會自動在群組中尋找相符的容量保留區,並使用保留的位置。

容量保留群組 實例視圖 會在屬性底下反映新的擴展集 vm, virtualMachinesAssociated & virtualMachinesAllocated 如下所示:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}?$expand=instanceview&api-version=2021-04-01 
{ 
    "name": "<CapacityReservationGroupName>", 
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}", 
    "type": "Microsoft.Compute/capacityReservationGroups", 
    "location": "eastus" 
}, 
    "properties": { 
        "capacityReservations": [ 
            { 
                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{CapacityReservationName}" 
            } 
        ], 
        "virtualMachinesAssociated": [ 
            { 
                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/virtualMachines/{VirtualMachineId}" 
            } 
        ], 
        "instanceView": { 
            "capacityReservations": [ 
                { 
                    "name": "<CapacityReservationName>", 
                    "utilizationInfo": { 
                        "virtualMachinesAllocated": [ 
                            { 
                                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/virtualMachines/{VirtualMachineId}" 
                            } 
                        ] 
                    },
                    "statuses": [ 
                        { 
                            "code": "ProvisioningState/succeeded", 
                            "level": "Info", 
                            "displayStatus": "Provisioning succeeded", 
                            "time": "2021-05-25T15:12:10.4165243+00:00" 
                        } 
                    ] 
                } 
            ] 
        } 
    } 
} 

區域和可用性區域考慮

您可以地區或在一或多個可用性區域中建立虛擬機器擴展集,以保護它們免于發生資料中心層級的失敗。 若要深入瞭解多個區域性的虛擬機器擴展集,請參閱 使用可用性區域的虛擬機器擴展集

重要

虛擬機器擴展集 (區域和可用性區域) 的位置,以及容量保留群組必須符合,關聯才能成功。 針對區域性擴展集,此區域必須在擴展集和容量保留群組之間相符。 針對區域性擴展集,區域和區域都必須符合擴展集和容量保留群組。

當擴展集分散到多個區域時,一律會嘗試在包含的可用性區域之間平均部署。 因為這甚至是部署,容量保留群組在每個區域中應一律具有相同數量的保留 Vm。 如需這項重要性的說明,請考慮下列範例。

在此範例中,每個區域都會保留不同的數量。 假設虛擬機器擴展集相應放大至75實例。 因為擴展集一律會嘗試平均地跨區域部署,VM 散發應如下所示:

區域 保留的數量 不會。 每個區域中的擴展集 Vm 未使用的保留數量 過度分派
1 40 25 15 0
2 20 25 0 5
3 15 25 0 10

在此情況下,區域1中15個未使用實例的擴展集會產生額外的成本。 向外延展也會依賴區域2中的5部 Vm,而區域3中的10部 vm 未受到容量保留的保護。 如果每個區域都有25個容量實例保留,則所有 75 Vm 都會受到容量保留的保護,而且部署不會產生未使用實例的額外成本。

由於保留可以過度分配,因此擴展集可以繼續正常地調整超過保留的限制。 唯一的差別在於容量保留 SLA 未涵蓋超過所配置數量的 Vm。 若要深入瞭解,請移至 Overallocating 容量保留

下一步