Een virtuele-machineschaalset koppelen aan Uniform Orchestration aan een capaciteitsreserveringsgroep
Van toepassing op: ✔️ Uniforme schaalset
Virtuele-machineschaalsets van Azure hebben twee modi:
- Uniform Orchestration: In deze modus gebruiken virtuele-machineschaalsets een VM-profiel (virtuele machine) 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 Orchestration gebruik van identieke VM-exemplaren. Deze exemplaren worden weergegeven via de VM-API's van de virtuele-machineschaalset en zijn niet compatibel met de API-opdrachten die standaard zijn voor IaaS-VM's (Infrastructure as a Service). Omdat de schaalset alle werkelijke VM-bewerkingen uitvoert, worden reserveringen rechtstreeks aan de virtuele-machineschaalset gekoppeld. Nadat de schaalset is gekoppeld aan de reservering, worden alle volgende VM-toewijzingen uitgevoerd op basis van de reservering.
- Flexibele indeling: In deze modus krijgt u meer flexibiliteit om de afzonderlijke VM-exemplaren van de virtuele-machineschaalset te beheren. Ze kunnen de standaard AZURE IaaS VM-API's gebruiken in plaats van met behulp van de interface van de schaalset. Als u reserveringen wilt gebruiken met de modus Flexibele indeling, definieert u zowel de eigenschap virtuele-machineschaalset als de eigenschap capaciteitsreservering op elke VIRTUELE machine.
Zie indelingsmodi voor virtuele-machineschaalsets voor meer informatie over deze modi.
Deze inhoud is van toepassing op de modus Uniform Orchestration. Zie Voor de modus Flexibele indeling een virtuele-machineschaalset koppelen aan een capaciteitsreserveringsgroep.
Beperkingen van schaalsets in Uniform Orchestration
- Als virtuele-machineschaalsets in Uniform Orchestration compatibel zijn met capaciteitsreservering, moet de
singlePlacementGroup
eigenschap worden ingesteld opFalse
. - De optie Statische beschikbaarheid voor vaste spreiding voor uniforme schaalsets met meerdere zone's wordt niet ondersteund met capaciteitsreservering. Voor deze optie is het gebruik van vijf foutdomeinen vereist. De reserveringen bieden echter alleen ondersteuning voor maximaal drie foutdomeinen voor grootten voor algemeen gebruik. We raden u aan om de optie Maximaal spreiden te gebruiken waarmee VM's over zoveel mogelijk foutdomeinen binnen elke zone worden verdeeld. Configureer indien nodig een aangepaste foutdomeinconfiguratie van drie of minder.
Er zijn enkele andere beperkingen wanneer u capaciteitsreserveringen gebruikt. Zie het overzicht van capaciteitsreserveringen voor de volledige lijst.
Een nieuwe virtuele-machineschaalset koppelen aan een capaciteitsreserveringsgroep
Belangrijk
Vanaf november 2023 worden virtuele-machineschaalsets gemaakt met behulp van PowerShell en de Azure CLI standaard ingesteld op de flexibele indelingsmodus als er geen indelingsmodus is opgegeven. Zie Belangrijke wijziging voor VMSS PowerShell/CLI-klanten - Microsoft Community Hub voor meer informatie over deze wijziging en welke acties u moet ondernemen.
Als u een nieuwe uniforme virtuele-machineschaalset 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 een capaciteitsreserveringsgroep
Een bestaande capaciteitsreserveringsgroep toevoegen aan een bestaande uniforme schaalset:
- Stop de schaalset om de toewijzing van de VM-exemplaren ongedaan te maken.
- Werk de schaalset bij om een overeenkomende capaciteitsreserveringsgroep te gebruiken.
- Start de schaalset.
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 capaciteitsreserveringsgroep 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 schaalsets gekoppeld aan de capaciteitsreserveringsgroep 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.
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
Voeg de
capacityReservationGroup
eigenschap toe aan het schaalsetmodel. Bouw de volgendePUT
aanvraag voorMicrosoft.Compute
de 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}" } } } }
Koppeling van virtuele-machineschaalsets weergeven met de exemplaarweergave
Nadat de uniforme virtuele-machineschaalset is gekoppeld aan de capaciteitsreserveringsgroep, 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 instantieweergave van de capaciteitsreserveringsgroep weerspiegelt de nieuwe schaalset-VM's onder de virtualMachinesAssociated
en 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- en beschikbaarheidszones
U kunt virtuele-machineschaalsets regionaal of in een of meer beschikbaarheidszones maken om ze te beschermen tegen storingen op datacenterniveau. Zie Virtuele-machineschaalsets die gebruikmaken van beschikbaarheidszones voor meer informatie over multizonale virtuele-machineschaalsets.
Belangrijk
De locatie (regio en beschikbaarheidszones) van de virtuele-machineschaalset en de capaciteitsreserveringsgroep moeten overeenkomen om de koppeling te laten slagen. Voor een regionale schaalset moet de regio overeenkomen tussen de schaalset en de capaciteitsreserveringsgroep. Voor een zonegebonden schaalset moeten zowel de regio's als de zones overeenkomen tussen de schaalset en de capaciteitsreserveringsgroep.
Wanneer een schaalset wordt verdeeld over meerdere zones, probeert deze altijd gelijkmatig te implementeren in 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 deze even implementatie 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 een schaalset altijd probeert gelijkmatig te implementeren tussen zones, moet de VM-distributie er als volgt uitzien:
Zone | Gereserveerde hoeveelheid | Aantal 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 worden voor de schaalset extra kosten in rekening gebracht 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 voor de implementatie 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 service level agreement voor capaciteitsreservering. Zie Overbezetcapaciteitsreservering voor meer informatie.