Een virtuele-machineschaalset aan een uniforme indeling koppelen aan een capaciteitsreserveringsgroep

Van toepassing op: ✔️ Uniforme schaalset

Virtuele-machineschaalsets hebben twee modi:

  • Uniform Orchestration Mode: In deze modus gebruiken Virtuele-machineschaalsets een VM-profiel of een sjabloon om omhoog te schalen naar de gewenste capaciteit. Hoewel er enige mogelijkheid is om afzonderlijke VM-exemplaren te beheren of aan te passen, maakt Uniform gebruik van identieke VM-exemplaren. Deze exemplaren worden weergegeven via de VM-API's van virtuele-machineschaalsets en zijn niet compatibel met de standaard azure IaaS VM API-opdrachten. Omdat de schaalset alle werkelijke VM-bewerkingen uitvoert, worden reserveringen rechtstreeks aan de virtuele-machineschaalset gekoppeld. Zodra de schaalset is gekoppeld aan de reservering, worden alle volgende VM-toewijzingen uitgevoerd op basis van de reservering.
  • Flexibele indelingsmodus: In deze modus krijgt u meer flexibiliteit bij het beheren van de afzonderlijke VM-exemplaren van virtuele-machineschaalsets, omdat ze de standaard-Azure IaaS VM-API's kunnen gebruiken in plaats van de interface van de schaalset te gebruiken. Als u reserveringen wilt gebruiken met de flexibele indelingsmodus, definieert u zowel de eigenschap Virtuele-machineschaalset als de eigenschap capaciteitsreservering op elke virtuele machine.

Voor meer informatie over deze modi gaat u naar indelingsmodi voor virtuele-machineschaalsets.

Deze inhoud is van toepassing op de uniforme indelingsmodus. Voor de flexibele indelingsmodus gaat u naar Een virtuele-machineschaalset koppelen aan een flexibele indelingsgroep

Beperkingen van schaalsets in Uniform Orchestration

  • Voor virtuele-machineschaalsets in uniforme indeling die compatibel is met Capaciteitsreservering, moet de singlePlacementGroup eigenschap zijn ingesteld op False.
  • De optie Statische vaste spreidingsbeschikbaarheid voor uniform schaalsets met meerdere zones wordt niet ondersteund met Capaciteitsreservering. Voor deze optie is het gebruik van 5 foutdomeinen vereist, terwijl de reserveringen alleen ondersteuning bieden voor maximaal 3 foutdomeinen voor grootten voor algemeen gebruik. De aanbevolen methode is om de optie Max Spread te gebruiken waarmee VM's over zoveel mogelijk FD's binnen elke zone worden verspreid. Configureer indien nodig een aangepaste foutdomeinconfiguratie van 3 of minder.

Er zijn enkele andere beperkingen tijdens het gebruik van Capaciteitsreservering. Raadpleeg het overzicht van capaciteitsreserveringen voor de volledige lijst.

Een nieuwe virtuele-machineschaalset koppelen aan een capaciteitsreserveringsgroep

Belangrijk

Vanaf november 2023 worden VM-schaalsets die zijn gemaakt met PowerShell en Azure CLI standaard ingesteld op de flexibele indelingsmodus als er geen indelingsmodus is opgegeven. Voor meer informatie over deze wijziging en welke acties u moet ondernemen, gaat u naar Belangrijke wijziging voor VMSS PowerShell/CLI-klanten - Microsoft Community Hub

Als u een nieuwe Uniform Virtual Machine Scale Set wilt koppelen aan een capaciteitsreserveringsgroep, maakt u de volgende PUT-aanvraag aan de Microsoft.Compute-provider :

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

Voeg de capacityReservationGroup eigenschap toe aan de virtualMachineProfile eigenschap:

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

Een bestaande virtuele-machineschaalset koppelen aan capaciteitsreserveringsgroep

Een bestaande capaciteitsreserveringsgroep toevoegen aan een bestaande Uniform-schaalset:

  • De schaalset stoppen om de toewijzing van de VM-exemplaren ongedaan te maken
  • De schaalset bijwerken om een overeenkomende capaciteitsreserveringsgroep te gebruiken
  • De schaalset starten

Dit proces zorgt ervoor dat de plaatsing voor de capaciteitsreserveringen en schaalset in de regio compatibel is.

Belangrijke opmerkingen over upgradebeleid

  • Automatische upgrade : in deze modus worden de VM-exemplaren van de schaalset automatisch gekoppeld aan de groep Capaciteitsreservering zonder verdere actie van u. Wanneer de virtuele machines van de schaalset opnieuw worden toegewezen, worden de gereserveerde capaciteit gebruikt.
  • Rolling Upgrade : in deze modus worden VM-exemplaren van de schaalset gekoppeld aan de groep Capaciteitsreservering zonder verdere actie van u. Ze worden echter bijgewerkt in batches met een optionele pauzetijd ertussen. Wanneer de virtuele machines van de schaalset opnieuw worden toegewezen, worden de gereserveerde capaciteit gebruikt.
  • Handmatige upgrade : in deze modus gebeurt er niets met de VM-exemplaren van de schaalset wanneer de virtuele-machineschaalset is gekoppeld aan een capaciteitsreserveringsgroep. U moet bijwerken naar elke schaalset-VM door deze te upgraden met het nieuwste schaalsetmodel.
  1. De toewijzing van de virtuele-machineschaalset ongedaan maken.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/deallocate?api-version=2021-04-01
    
  2. Voeg de capacityReservationGroup eigenschap toe aan het schaalsetmodel. Bouw de volgende PUT-aanvraag voor Microsoft.Compute-provider :

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

    Neem de eigenschap op in de hoofdtekst van de capacityReservationGroup aanvraag:

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

Virtuele-machineschaalsetkoppeling weergeven met exemplaarweergave

Zodra de Uniform Virtual Machine Scale Set is gekoppeld aan de groep Capaciteitsreservering, worden alle volgende VM-toewijzingen uitgevoerd op basis van de capaciteitsreservering. Azure vindt automatisch de overeenkomende capaciteitsreservering in de groep en verbruikt een gereserveerde site.

De weergave Exemplaar van capaciteitsreserveringsgroep weerspiegelt de nieuwe schaalset-VM's onder de virtualMachinesAssociated & virtualMachinesAllocated eigenschappen:

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

Overwegingen voor regio's en Beschikbaarheidszones

Virtuele-machineschaalsets kunnen regionaal of in een of meer Beschikbaarheidszones worden gemaakt om ze te beschermen tegen storingen op datacentrumniveau. Zie Virtuele-machineschaalsets die gebruikmaken van Beschikbaarheidszones voor meer zonegebonden virtuele-machineschaalsets.

Belangrijk

De locatie (regio en Beschikbaarheidszones) van de virtuele-machineschaalset en de groep Capaciteitsreservering moeten overeenkomen om de koppeling te laten slagen. Voor een regionale schaalset moet de regio overeenkomen tussen de schaalset en de groep Capaciteitsreservering. Voor een zonegebonden schaalset moeten zowel de regio's als de zones overeenkomen tussen de schaalset en de groep Capaciteitsreservering.

Wanneer een schaalset wordt verdeeld over meerdere zones, probeert deze altijd gelijkmatig te implementeren op de opgenomen Beschikbaarheidszones. Vanwege deze gelijkmatige implementatie moet een capaciteitsreserveringsgroep altijd dezelfde hoeveelheid gereserveerde VM's in elke zone hebben. Bekijk het volgende voorbeeld als illustratie van waarom dit belangrijk is.

In dit voorbeeld heeft elke zone een andere hoeveelheid gereserveerd. Stel dat de schaalset voor virtuele machines wordt uitgeschaald naar 75 exemplaren. Omdat de schaalset altijd probeert gelijkmatig te implementeren tussen zones, moet de VM-distributie er als volgt uitzien:

Zone Gereserveerde hoeveelheid Nee vm's van schaalsets in elke zone Ongebruikte hoeveelheid gereserveerd Overbezet
1 40 25 15 0
2 20 25 0 5
3 15 25 0 10

In dit geval maakt de schaalset extra kosten voor 15 ongebruikte exemplaren in zone 1. De uitschaalbewerking is ook afhankelijk van 5 VM's in zone 2 en 10 vm's in zone 3 die niet worden beveiligd door capaciteitsreservering. Als voor elke zone 25 capaciteitsexemplaren zijn gereserveerd, worden alle 75 VM's beveiligd door Capaciteitsreservering en worden er geen extra kosten in rekening gebracht voor ongebruikte exemplaren.

Omdat de reserveringen overbezet kunnen worden, kan de schaalset normaal blijven schalen buiten de limieten van de reservering. Het enige verschil is dat de VM's die boven de gereserveerde hoeveelheid zijn toegewezen, niet worden gedekt door de SLA voor capaciteitsreservering. Ga naar Overbezetcapaciteitsreservering voor meer informatie.

Volgende stappen