Zuordnen einer VM-Skalierungsgruppe mit einheitlicher Orchestrierung zu einer Kapazitätsreservierungsgruppe
Gilt für: ✔️ Einheitliche Skalierungsgruppe
Azure Virtual Machine Scale Sets weist zwei Modi auf:
- Einheitliche Orchestrierung: In diesem Modus verwenden VM-Skalierungsgruppen ein VM-Profil oder eine Vorlage für die Hochskalierung auf die gewünschte Kapazität. Einzelne VM-Instanzen können zwar bis zu einem gewissen Maß verwaltet oder angepasst werden, aber bei der einheitlichen Orchestrierung werden identische VM-Instanzen verwendet. Diese Instanzen werden über die VM-APIs der VM-Skalierungsgruppen zur Verfügung gestellt und sind nicht mit den API-Standardbefehlen für Azure-IaaS (Infrastructure-as-a-Service) kompatibel. Da die Skalierungsgruppe alle eigentlichen VM-Vorgänge ausführt, werden Reservierungen direkt der VM-Skalierungsgruppe zugeordnet. Nachdem die Skalierungsgruppe der Reservierung zugeordnet wurde, werden alle nachfolgenden VM-Zuordnungen anhand der Reservierung durchgeführt.
- Flexible Orchestrierung: In diesem Modus erhalten Sie mehr Flexibilität für die Verwaltung der einzelnen VM-Skalierungsgruppen-VM-Instanzen. Sie können die standardmäßigen Azure-IaaS-VM-APIs anstelle der Schnittstelle der Skalierungsgruppe verwenden. Um Reservierungen im Modus mit flexibler Orchestrierung zu verwenden, definieren Sie sowohl die VM-Skalierungsgruppeneigenschaft als auch die Kapazitätsreservierungseigenschaft auf jeder VM.
Weitere Informationen zu diesen Modi finden Sie unter Orchestrierungsmodi für VM-Skalierungsgruppen.
Dieser Inhalt gilt für den einheitlichen Orchestrierungsmodus. Informationen zum flexiblen Orchestrierungsmodus finden Sie unter Zuordnen einer VM-Skalierungsgruppe mit flexibler Orchestrierung zu einer Kapazitätsreservierungsgruppe.
Einschränkungen von Skalierungsgruppen in einer einheitlichen Orchestrierung
- Damit VM-Skalierungsgruppen in einer einheitlichen Orchestrierung mit der Kapazitätsreservierung kompatibel sind, muss die
singlePlacementGroup
-Eigenschaft aufFalse
festgelegt werden. - Die Verfügbarkeitsoption Statische feste Verteilung für einheitliche Skalierungsgruppen mit mehreren Zonen wird bei der Kapazitätsreservierung nicht unterstützt. Diese Option erfordert die Verwendung von fünf Fehlerdomänen. Die Reservierungen unterstützen jedoch nur bis zu drei Fehlerdomänen für universelle Größen. Es wird empfohlen, die Option Max. Verteilung zu verwenden, die VMs innerhalb jeder Zone auf so viele FDs wie möglich verteilt. Konfigurieren Sie bei Bedarf eine benutzerdefinierte Konfiguration von höchstens drei Fehlerdomänen.
Bei Verwendung von Kapazitätsreservierung gelten einige weitere Einschränkungen. Die vollständige Liste finden Sie in der Übersicht über Kapazitätsreservierungen.
Zuordnen einer neuen VM-Skalierungsgruppe zu einer Kapazitätsreservierungsgruppe
Wichtig
Ab November 2023 werden VM-Skalierungsgruppen, die mit PowerShell und der Azure-Befehlszeilenschnittstelle erstellt wurden, standardmäßig auf den flexiblen Orchestrierungsmodus festgelegt, wenn kein Orchestrierungsmodus angegeben wird. Weitere Informationen zu dieser Änderung und zu den Maßnahmen, die Sie ergreifen sollten, finden Sie unter Breaking Change für PowerShell-/CLI-Kunden mit VMSS – Microsoft Community Hub.
Erstellen Sie die folgende PUT
-Anforderung an den Anbieter Microsoft.Compute
, um einer Kapazitätsreservierungsgruppe eine neue einheitliche VM-Skalierungsgruppe zuzuordnen:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01
Fügen Sie die capacityReservationGroup
-Eigenschaft in der virtualMachineProfile
-Eigenschaft hinzu:
{
"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": {
…
}
}
}
Zuordnen einer vorhandenen VM-Skalierungsgruppe zu einer Kapazitätsreservierungsgruppe
So fügen Sie einer vorhandenen einheitlichen Skalierungsgruppe eine vorhandene Kapazitätsreservierungsgruppe hinzu:
- Beenden Sie die Skalierungsgruppe, um die Zuordnung der VM-Instanzen aufzuheben.
- Aktualisieren Sie die Skalierungsgruppe, um eine entsprechende Kapazitätsreservierungsgruppe zu verwenden.
- Starten Sie die Skalierungsgruppe.
Auf diese Weise wird sichergestellt, dass die Platzierungen für die Kapazitätsreservierungen und die Skalierungsgruppe in der Region kompatibel sind.
Wichtige Hinweise zu Upgraderichtlinien
- Automatisches Upgrade: In diesem Modus werden die VM-Instanzen der Skalierungsgruppe der Kapazitätsreservierungsgruppe ohne weitere Maßnahmen automatisch zugeordnet. Wenn die VMs der Skalierungsgruppe erneut zugewiesen werden, beginnen sie, die reservierte Kapazität zu nutzen.
- Paralleles Upgrade: In diesem Modus werden die VM-Instanzen der Skalierungsgruppe der Kapazitätsreservierungsgruppe ohne weitere Maßnahmen zugeordnet. Sie werden jedoch in Batches mit einer optionalen Pausenzeit zwischen ihnen aktualisiert. Wenn die VMs der Skalierungsgruppe erneut zugewiesen werden, beginnen sie, die reservierte Kapazität zu nutzen.
- Manuelles Upgrade: In diesem Modus geschieht nichts mit den VM-Instanzen der Skalierung gruppe, wenn die VM-Skalierungsgruppe an eine Kapazitätsreservierungsgruppe angefügt wird. Sie müssen jede VM-Skalierungsgruppe aktualisieren, indem Sie sie mit dem neuesten Skalierungsgruppenmodell aktualisieren.
Aufheben der Zuordnung der VM-Skalierungsgruppe:
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/deallocate?api-version=2021-04-01
Fügen Sie die
capacityReservationGroup
-Eigenschaft dem Skalierungsgruppenmodell hinzu. Erstellen Sie die folgendePUT
-Anforderung an denMicrosoft.Compute
-Anbieter:PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01
Fügen Sie die
capacityReservationGroup
-Eigenschaft in den Anforderungstext ein:"location": "eastus", "properties": { "virtualMachineProfile": { "capacityReservation": { "capacityReservationGroup": { "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}" } } } }
Anzeigen der Zuordnung der VM-Skalierungsgruppe mit der Instanzansicht
Nachdem die einheitliche VM-Skalierungsgruppe der Kapazitätsreservierungsgruppe zugeordnet wurde, werden alle nachfolgenden VM-Zuordnungen anhand der Kapazitätsreservierung ausgeführt. Azure findet automatisch die entsprechende Kapazitätsreservierung in der Gruppe und nutzt einen reservierten Slot.
Die Instanzansicht der Kapazitätsreservierung spiegelt die neuen VMs der Skalierungsgruppe in den Eigenschaften virtualMachinesAssociated
und virtualMachinesAllocated
wider:
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"
}
]
}
]
}
}
}
Überlegungen zur Region und zur Verfügbarkeitszone
Sie können VM-Skalierungsgruppen regional oder in Verfügbarkeitszonen erstellen, um sie vor Ausfällen auf Rechenzentrumsebene zu schützen. Weitere Informationen zu VM-Skalierungsgruppen mit mehreren Zonen finden Sie unter VM-Skalierungsgruppen, die Verfügbarkeitszonen verwenden.
Wichtig
Der Standort (Region und Verfügbarkeitszonen) muss für die VM-Skalierungsgruppe und die Kapazitätsreservierungsgruppe übereinstimmen, damit die Zuordnung erfolgreich ist. Bei einer regionalen Skalierungsgruppe muss die Region der Skalierungsgruppe mit der Region der Kapazitätsreservierungsgruppe übereinstimmen. Bei einer zonalen Skalierungsgruppe müssen sowohl die Region als auch die Zonen der Skalierungsgruppe mit denen der Kapazitätsreservierungsgruppe übereinstimmen.
Wenn eine Skalierungsgruppe auf mehrere Zonen verteilt ist, wird immer versucht, eine gleichmäßige Bereitstellung über die enthaltenen Verfügbarkeitszonen zu erzielen. Aufgrund dieser gleichmäßigen Bereitstellung sollte eine Kapazitätsreservierungsgruppe immer die gleiche Anzahl reservierter VMs in jeder Zone haben. Um zu verdeutlichen, warum diese gleichmäßige Bereitstellung wichtig ist, sehen Sie sich das folgende Beispiel an.
In diesem Beispiel ist für jede Zone eine andere Anzahl von VMs reserviert. Angenommen, die Skalierungsgruppe wird auf 75 Instanzen aufskaliert. Da die Skalierungsgruppe immer versucht, eine gleichmäßige Verteilung auf die Zonen vorzunehmen, sollte die VM-Verteilung wie dieses Beispiel aussehen:
Zone | Reservierte Anzahl | Anzahl der Skalierungsgruppen-VMs in jeder Zone | Nicht genutzte reservierte Anzahl | Überlastet |
---|---|---|---|---|
1 | 40 | 25 | 15 | 0 |
2 | 20 | 25 | 0 | 5 |
3 | 15 | 25 | 0 | 10 |
In diesem Fall fallen für die Skalierungsgruppe zusätzliche Kosten für 15 nicht verwendete Instanzen in Zone 1 an. Die horizontale Skalierung verwendet ebenfalls 5 VMs in Zone 2 und 10 VMs in Zone 3, die nicht durch Kapazitätsreservierung geschützt sind. Wenn für jede Zone 25 Kapazitätsinstanzen reserviert sind, werden alle 75 VMs durch Kapazitätsreservierung geschützt, und für die Bereitstellung fallen keine zusätzlichen Kosten für nicht verwendete Instanzen an.
Da die Reservierungen überlastet werden können, kann die Skalierungsgruppe weiterhin normal über die Grenzen der Reservierung hinaus skaliert werden. Der einzige Unterschied besteht darin, dass die VMs, die über der reservierten Menge liegen, nicht durch die Vereinbarung zum Servicelevel für Kapazitätsreservierungen abgedeckt werden. Weitere Informationen finden Sie unter Überlasten der Kapazitätsreservierung.