Associera en VM-skalningsuppsättning med enhetlig orkestrering till en kapacitetsreservationsgrupp
Gäller för: ✔️ Enhetlig skalningsuppsättning
Skalningsuppsättningar för virtuella Azure-datorer har två lägen:
- Enhetlig orkestrering: I det här läget använder vm-skalningsuppsättningar en profil för virtuella datorer (VM) 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 Orchestration identiska VM-instanser. Dessa instanser exponeras via vm-skalningsuppsättningens VM-API:er och är inte kompatibla med DE API-kommandon som är standard för virtuella IaaS-datorer (Infrastruktur som en tjänst). Eftersom skalningsuppsättningen utför alla faktiska VM-åtgärder associeras reservationer direkt till vm-skalningsuppsättningen. När skalningsuppsättningen har associerats med reservationen görs alla efterföljande VM-allokeringar mot reservationen.
- Flexibel orkestrering: I det här läget får du större flexibilitet för att hantera enskilda vm-skalningsuppsättningsinstanser för virtuella datorer. De kan använda standard-API:er för virtuella Azure IaaS-datorer i stället för med hjälp av skalningsuppsättningsgränssnittet. Om du vill använda reservationer med flexibelt orkestreringsläge definierar du både vm-skalningsuppsättningsegenskapen och egenskapen kapacitetsreservation på varje virtuell dator.
Mer information om dessa lägen finns i Orkestreringslägen för vm-skalningsuppsättningar.
Det här innehållet gäller för läget Enhetlig orkestrering. För flexibelt orkestreringsläge, se 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 med flera zoner stöds inte med kapacitetsreservation. Det här alternativet kräver användning av fem feldomäner. Reservationerna stöder dock endast upp till tre feldomäner för allmänna storlekar. Den metod vi rekommenderar är att använda alternativet Maximal spridning som sprider virtuella datorer över så många feldomäner som möjligt i varje zon. Om det behövs konfigurerar du en anpassad feldomänkonfiguration på tre eller mindre.
Det finns några andra begränsningar när du använder kapacitetsreservationer. 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 skalar skalningsuppsättningar för virtuella datorer som skapats med hjälp av PowerShell och Azure CLI som standard till flexibelt 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 providern Microsoft.Compute
:
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 en 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 till kapacitetsreservationsgruppen 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 till kapacitetsreservationsgruppen 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.
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
capacityReservationGroup
Lägg till egenskapen i skalningsuppsättningsmodellen. Skapa följandePUT
begäran tillMicrosoft.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 instansvyn
När den enhetliga vm-skalningsuppsättningen är associerad med kapacitetsreservationsgruppen sker alla efterföljande VM-allokeringar mot kapacitetsreservationen. Azure hittar automatiskt den matchande kapacitetsreservationen i gruppen och använder ett reserverat fack.
Instansvyn för kapacitetsreservationsgruppen visar de nya virtuella skalningsuppsättningsdatorerna virtualMachinesAssociated
under egenskaperna och 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"
}
]
}
]
}
}
}
Överväganden för region- och tillgänglighetszoner
Du kan skapa vm-skalningsuppsättningar regionalt eller i en eller flera tillgänglighetszoner för att skydda dem mot fel på datacenternivå. Mer information om skalningsuppsättningar för virtuella datorer med flera zoner finns i Vm-skalningsuppsättningar 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 zonindelad skalningsuppsättning måste både regionerna och zonerna matcha mellan skalningsuppsättningen och kapacitetsreservationsgruppen.
När en skalningsuppsättning är fördelad över flera zoner försöker den alltid distribuera jämnt över de inkluderade tillgänglighetszonerna. 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 den här även distributionen är viktig 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 en skalningsuppsättning alltid försöker distribuera jämnt mellan zoner bör VM-distributionen se ut så här:
Zon | Reserverad kvantitet | Antal virtuella skalningsuppsättningsdatorer 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 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 serviceavtal på kapacitetsreservationsnivå. Mer information finns i Överbetala kapacitetsreservation.