Associera en vm-skalningsuppsättning med enhetlig orkestrering till en kapacitetsreservationsgrupp

Gäller för: ✔️ Enhetlig skalningsuppsättning

Vm-skalningsuppsättningar har 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-API:erna för VM-skalningsuppsättningar för virtuella datorer 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 större flexibilitet när du hanterar de enskilda VM-instanserna för vm-skalningsuppsättningar 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. Om du vill använda reservationer med flexibelt orkestreringsläge definierar du både egenskapen Vm-skalningsuppsättning och egenskapen kapacitetsreservation på varje virtuell dator.

Om du vill veta mer om de här lägena går du till Orkestreringslägen för vm-skalningsuppsättningar.

Det här innehållet gäller för det enhetliga orkestreringsläget. För flexibelt orkestreringsläge går du till Associera en VM-skalningsuppsättning med flexibel orkestrering till en kapacitetsreservationsgrupp

Begränsningar för skalningsuppsättningar i enhetlig orkestrering

  • För att vm-skalningsuppsättningar i enhetlig orkestrering ska vara kompatibla med kapacitetsreservation singlePlacementGroup måste egenskapen vara inställd på False.
  • Tillgänglighetsalternativet Statisk fast spridning för enhetliga skalningsuppsättningar i 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 översikten över kapacitetsreservationer.

Associera en ny vm-skalningsuppsättning till en kapacitetsreservationsgrupp

Viktigt!

Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard att vara flexibla orkestreringsläge om inget orkestreringsläge har angetts. Mer information om den här ändringen och vilka åtgärder du bör vidta finns i Icke-bakåtkompatibla ändringar för VMSS PowerShell/CLI-kunder – Microsoft Community Hub

Om du vill associera en ny enhetlig 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 egenskapen capacityReservationGroup i egenskapen 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": { 
                … 
            } 
        } 
    } 

Associera en befintlig vm-skalningsuppsättning till kapacitetsreservationsgrupp

Så här lägger du till en befintlig kapacitetsreservationsgrupp i en befintlig enhetlig skalningsuppsättning:

  • Stoppa skalningsuppsättningen för att frigöra de virtuella datorinstanserna
  • Uppdatera skalningsuppsättningen så att den använder en matchande kapacitetsreservationsgrupp
  • Starta skalningsuppsättningen

Den här processen säkerställer att placeringen för kapacitetsreservationer och skalningsuppsättningar i regionen är kompatibla.

Viktig information om uppgraderingsprinciper

  • Automatisk uppgradering – I det här läget associeras skalningsuppsättningens VM-instanser automatiskt med gruppen Kapacitetsreservation utan någon ytterligare åtgärd 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 vm-instanser med skalningsuppsättningar med gruppen Kapacitetsreservation utan någon ytterligare åtgärd 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 uppdatera till varje virtuell skalningsuppsättningsdator genom att uppgradera den med den senaste skalningsuppsättningsmodellen.
  1. Frigör VM-skalningsuppsättningen.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/deallocate?api-version=2021-04-01
    
  2. capacityReservationGroup Lägg till 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
    

    I begärandetexten inkluderar du capacityReservationGroup egenskapen:

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

Visa vm-skalningsuppsättningsassociation med instansvy

När den enhetliga vm-skalningsuppsättningen är associerad med gruppen Kapacitetsreservation sker alla efterföljande VM-allokeringar mot kapacitetsreservationen. Azure hittar automatiskt den matchande kapacitetsreservationen i gruppen och använder ett reserverat fack.

Instansvyn Kapacitetsreservationsgrupp visar de nya virtuella skalningsuppsättningsdatorerna virtualMachinesAssociated under egenskaperna & 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" 
                        } 
                    ] 
                } 
            ] 
        } 
    } 
} 

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å. Läs mer om skalningsuppsättningar för virtuella datorer i flera zoner, se Vm-skalningsuppsättningar som använder Tillgänglighetszoner.

Viktigt!

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

När en skalningsuppsättning sprids över flera zoner försöker den alltid distribuera jämnt över de 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 bör du överväga följande exempel.

I det här exemplet har varje zon en annan 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-fördelningen se ut så här:

Zon Reserverad kvantitet Nej. av skalningsuppsättningens virtuella datorer i varje zon Oanvänd kvantitet reserverad Ö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 kapacitetsreservation 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 allokerats över den reserverade kvantiteten inte omfattas av serviceavtalet för kapacitetsreservation. Mer information finns i Överallokera kapacitetsreservation.

Nästa steg