Associera en VM-skalningsuppsättning med en kapacitetsreservationsgrupp (förhandsversion)

Virtual Machine Scale Sets två lägen:

  • Enhetligt orkestreringsläge: I det här läget använder VM-skalningsuppsättningar en VM-profil eller en mall för att skala upp till önskad kapacitet. Även om det finns viss möjlighet att hantera eller anpassa enskilda VM-instanser använder Uniform identiska VM-instanser. Dessa instanser exponeras via VM Scale Sets VM API:er och är inte kompatibla med standardkommandona för AZURE IaaS VM API. Eftersom skalningsuppsättningen utför alla faktiska VM-åtgärder associeras reservationer direkt med VM-skalningsuppsättningen. När skalningsuppsättningen är associerad med reservationen görs alla efterföljande VM-allokeringar mot reservationen.
  • Flexibelt orkestreringsläge: I det här läget får du mer flexibilitet när du hanterar de enskilda VM-skalningsuppsättningsinstanserna eftersom de kan använda standard-API:er för virtuella Azure IaaS-datorer i stället för att använda skalningsuppsättningsgränssnittet. Det här läget fungerar inte med kapacitetsreservation under den offentliga förhandsversionen.

Mer information om dessa lägen finns i Virtual Machine Scale Sets Orkestreringslägen. Resten av den här artikeln beskriver hur du associerar en UNIFORM VM-skalningsuppsättning till en kapacitetsreservationsgrupp.

Viktigt

Kapacitetsreservation är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Begränsningar för skalningsuppsättningar i Uniform Orchestration

  • För Virtual Machine Scale Sets i Uniform Orchestration ska vara kompatibel med kapacitetsreservation singlePlacementGroup måste egenskapen anges till False.
  • Tillgänglighetsalternativet Statisk fast spridning för uniform skalningsuppsättningar med flera zoner stöds inte med kapacitetsreservation. Det här alternativet kräver användning av 5 feldomäner medan reservationerna endast stöder upp till 3 feldomäner för allmänna storlekar. Den rekommenderade metoden är att använda alternativet Maximal spridning som sprider virtuella datorer över så många FD:er som möjligt inom varje zon. Om det behövs konfigurerar du en anpassad feldomänkonfiguration på 3 eller mindre.

Det finns några andra begränsningar när du använder kapacitetsreservation. Den fullständiga listan finns i Översikt över kapacitetsreservationer.

Associera en ny VM-skalningsuppsättning med en kapacitetsreservationsgrupp

Om du vill associera en ny UNIFORM VM-skalningsuppsättning till en kapacitetsreservationsgrupp skapar du följande PUT-begäran till Microsoft.Compute-providern:

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

Lägg till capacityReservationGroup egenskapen i virtualMachineProfile enligt nedan:

{ 
    "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": { 
                … 
            } 
        } 
    } 

Associera en befintlig VM-skalningsuppsättning med kapacitetsreservationsgruppen

För den offentliga förhandsversionen måste du först avallokera skalningsuppsättningen och sedan göra associationen vid tidpunkten för omallokeringen för den offentliga förhandsversionen för att kunna associera en befintlig VM-skalningsuppsättning med kapacitetsreservationsgruppen. Detta säkerställer att alla skalningsuppsättningens virtuella datorer förbrukar kapacitetsreservation vid tidpunkten för omallokeringen.

Viktig information om uppgraderingsprinciper

  • Automatisk uppgradering – I det här läget associeras skalningsuppsättningens VM-instanser automatiskt med kapacitetsreservationsgruppen utan ytterligare åtgärder från dig. När skalningsuppsättningens virtuella datorer omallokeras börjar de förbruka den reserverade kapaciteten.
  • Löpande uppgradering – I det här läget associeras skalningsuppsättningens VM-instanser med kapacitetsreservationsgruppen utan ytterligare åtgärder från dig. De uppdateras dock i batchar med en valfri paustid mellan dem. När skalningsuppsättningens virtuella datorer omallokeras börjar de förbruka den reserverade kapaciteten.
  • Manuell uppgradering – I det här läget händer ingenting med skalningsuppsättningens VM-instanser när VM-skalningsuppsättningen är kopplad till en kapacitetsreservationsgrupp. Du måste göra enskilda uppdateringar av varje virtuell dator i skalningsuppsättningen genom att uppgradera den med den senaste skalningsuppsättningsmodellen.
  1. Frisa VM-skalningsuppsättningen.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/deallocate?api-version=2021-04-01
    
  2. Lägg till capacityReservationGroup egenskapen i skalningsuppsättningsmodellen. Skapa följande PUT-begäran till Microsoft.Compute-providern:

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

    Ta med egenskapen i capacityReservationGroup begärandetexten:

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

Visa kopplingen mellan VM-skalningsuppsättningen och instansvyn

När VM-skalningsuppsättningen uniform associeras med kapacitetsreservationsgruppen sker alla efterföljande VM-allokeringar mot kapacitetsreservationen. Azure hittar automatiskt matchande kapacitetsreservation i gruppen och förbrukar ett reserverat fack.

Vyn Kapacitetsreservationsgruppinstans speglar de nya skalningsuppsättningens virtuella datorer under egenskaperna enligt virtualMachinesAssociated & virtualMachinesAllocated nedan:

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" 
                        } 
                    ] 
                } 
            ] 
        } 
    } 
} 

Region- och Tillgänglighetszoner överväganden

VM-skalningsuppsättningar kan skapas regionalt eller i en eller flera Tillgänglighetszoner för att skydda dem mot fel på datacenternivå. Mer information om VM-skalningsuppsättningar med flera zoner finns i Virtual Machine Scale Sets som använder Tillgänglighetszoner.

Viktigt

Platsen (region och Tillgänglighetszoner) för VM-skalningsuppsättningen och kapacitetsreservationsgruppen måste matcha för att associationen ska lyckas. För en regional skalningsuppsättning måste regionen matcha mellan skalningsuppsättningen och kapacitetsreservationsgruppen. För en zonindelig skalningsuppsättning måste både regionerna och zonerna matcha mellan skalningsuppsättningen och kapacitetsreservationsgruppen.

När en skalningsuppsättning sprids över flera zoner försöker den alltid distribuera jämnt över den inkluderade Tillgänglighetszoner. På grund av den jämna distributionen bör en kapacitetsreservationsgrupp alltid ha samma antal reserverade virtuella datorer i varje zon. Som en illustration av varför detta är viktigt kan du titta på exemplet nedan.

I det här exemplet har varje zon en egen reserverad kvantitet. Anta att VM-skalningsuppsättningen skalar ut till 75 instanser. Eftersom skalningsuppsättningen alltid försöker distribuera jämnt mellan zoner bör VM-distributionen se ut så här:

Zon Reserverad kvantitet Nej. av skalningsuppsättningens virtuella datorer i varje zon Reserverad oanvänd kvantitet Överbelagd
1 40 25 15 0
2 20 25 0 5
3 15 25 0 10

I det här fallet medför skalningsuppsättningen extra kostnad för 15 oanvända instanser i Zon 1. Utskalningen förlitar sig också på 5 virtuella datorer i Zon 2 och 10 virtuella datorer i Zon 3 som inte skyddas av kapacitetsreservation. Om varje zon hade 25 kapacitetsinstanser reserverade skulle alla 75 virtuella datorer skyddas av kapacitetsreservationen och distributionen skulle inte medföra någon extra kostnad för oanvända instanser.

Eftersom reservationerna kan överberäknas kan skalningsuppsättningen fortsätta att skalas normalt utanför reservationens gränser. Den enda skillnaden är att de virtuella datorer som allokeras ovanför den reserverade kvantiteten inte omfattas av serviceavtalet för kapacitetsreservation. Mer information finns i Övergripande kapacitetsreservation.

Nästa steg