Bereitstellen eines verwalteten Service Fabric-Clusters mit zustandslosen Knotentypen
Für Service Fabric-Knotentypen gilt die Annahme, dass zu einem bestimmten Zeitpunkt ggf. zustandsbehaftete Dienste auf den Knoten platziert werden. Zustandslose Knotentypen ändern diese Annahme für einen Knotentyp. Dadurch kann der Knotentyp von Features wie schnelleren Aufskalierungsvorgängen, Unterstützung für automatische Betriebssystemupgrades, Spot-VMs und Aufskalierung auf mehr als 100 Knoten in einem Knotentyp profitieren.
- Primäre Knotentypen können nicht als zustandslos konfiguriert werden.
- Zustandslose Knotentypen erfordern die API-Version 2021-05-01 oder höher.
- Dadurch wird die Eigenschaft multipleplacementgroup automatisch auf true festgelegt, über die Sie hier mehr erfahren können. Die zugrunde liegenden Anforderungen und Einschränkungen für die VM-Skalierungsgruppe zum Aktivieren diese Eigenschaft gelten für verwaltete Service Fabric-Cluster.
- Dies ermöglicht Unterstützung von bis zu 1.000 Knoten für den angegebenen Knotentyp.
- Zustandslose Knotentypen können einen temporären VM-SKU-Datenträger verwenden.
Aktivieren von zustandslosen Knotentypen in einem verwalteten Service Fabric-Cluster
Legen Sie die isStateless-Eigenschaft auf TRUE fest, um mindestens einen Knotentyp in einer Knotentypressource als zustandslos festzulegen. Bei der Bereitstellung eines Service Fabric-Clusters mit zustandslosen Knotentypen erfordert das Setup mindestens einen primären Knotentyp im Cluster, der nicht zustandslos ist.
Es sind Beispielvorlagen verfügbar: Vorlage für zustandslose Service Fabric-Knotentypen
- Die apiVersion der verwalteten Service Fabric-Clusterressource sollte 2021-05-01 oder höher lauten.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"isStateless": true,
"isPrimary": false,
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
"vmSize": "[parameters('nodeTypeSize')]",
"vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
"dataDiskSizeGB": "[parameters('nodeTypeDataDiskSizeGB')]"
}
}
Aktivieren statusfreier Knotentypen mithilfe von Spot-VMs in einem verwalteten Service Fabric-Cluster
Mit Azure Spot Virtual Machines in Skalierungsgruppen können Benutzer von ungenutzter Computekapazität profitieren und erhebliche Kosteneinsparungen erzielen. Wenn die Kapazität von Azure wieder benötigt wird, werden diese Azure Spot-VM-Instanzen durch die Azure-Infrastruktur entfernt. Daher eignen sich Spot-VM-Knotentypen hervorragend für Workloads, die Unterbrechungen tolerieren und nicht innerhalb eines bestimmten Zeitrahmens abgeschlossen werden müssen. Empfohlene Workloads umfassen Entwicklung, Tests, Batchverarbeitungsaufträge, Big Data oder andere groß angelegte Szenarien für zustandslose Ressourcen.
Legen Sie die Eigenschaften isStateless und IsSpotVM auf „true“ fest, um mindestens einen zustandslosen Knotentyp für die Verwendung von Spot-VMs festzulegen. Beim Bereitstellen eines Service Fabric-Clusters mit zustandslosen Knotentypen ist im Cluster mindestens ein primärer Knotentyp erforderlich, der nicht zustandslos ist. Für zustandslose Knotentypen, die für die Verwendung von Spot-VMs konfiguriert sind, ist standardmäßig die Entfernungsrichtlinie „Löschen“ festgelegt. Kunden können für „evictionPolicy“ entweder „Löschen“ oder „Zuordnung aufheben“ konfigurieren, dies ist jedoch nur zum Zeitpunkt der Erstellung von Knotentypen möglich.
Es sind Beispielvorlagen verfügbar: Vorlagen für Service Fabric-Spotknotentypen.
- Die API-Version der verwalteten Service Fabric-Clusterressource muss 2022-06-01-preview oder höher lauten.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"isStateless": true,
"isPrimary": false,
"IsSpotVM": true,
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
"vmSize": "[parameters('nodeTypeSize')]",
"vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
"dataDiskSizeGB": "[parameters('nodeTypeDataDiskSizeGB')]"
}
}
Aktivieren von Spot-VMs mit „Versuchen & Wiederherstellen“
Mit dieser Konfiguration kann die Plattform automatisch versuchen, die entfernten Spot-VMs wiederherzustellen. Ausführliche Informationen finden Sie im Dokument zu VM-Skalierungsgruppen. Diese Konfiguration kann nur für neue Spotknotentypen aktiviert werden, indem spotRestoreTimeout angegeben wird. Dabei handelt es sich um einen Zeitraum im ISO 8601-Format mit einem Wert zwischen 30 und 2.880 Minuten. Die Plattform versucht, die VMs nach dem Entfernen in diesem Zeitraum wiederherzustellen.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"isStateless": true,
"isPrimary": false,
"IsSpotVM": true,
"evictionPolicy": "deallocate",
"spotRestoreTimeout": "PT30M",
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
"vmSize": "[parameters('nodeTypeSize')]",
"vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
"dataDiskSizeGB": "[parameters('nodeTypeDataDiskSizeGB')]"
}
}
Konfigurieren zustandsloser Knotentypen für Zonenresilienz
Um einen zustandslosen Knotentyp für Zonenresilienz zu konfigurieren, müssen Sie den Zonenumfang für verwaltete Cluster auf Clusterebene konfigurieren.
Hinweis
Die Eigenschaft für zonale Resilienz muss auf Clusterebene festgelegt werden, und diese Eigenschaft kann nicht direkt geändert werden.
Unterstützung von temporären Datenträgern
Zustandslose Knotentypen können so konfiguriert werden, dass für die Daten anstelle eines verwalteten Datenträgers ein temporärer Datenträger verwendet wird. Durch die Verwendung eines temporären Datenträgers können die Kosten für zustandslose Workloads gesenkt werden. Um einen zustandslosen Knotentyp für die Verwendung des temporären Datenträgersatzes zu konfigurieren, legen Sie die Eigenschaft useTempDataDisk auf true fest.
- Der temporäre Datenträger muss mindestens 32 GB groß sein. Die Größe des temporären Datenträgers hängt von der Größe des virtuellen Computers ab.
- Der temporäre Datenträger wird nur dann durch serverseitige Verschlüsselung verschlüsselt, wenn Sie die Verschlüsselung auf dem Host aktivieren.
- Die apiVersion der verwalteten Service Fabric-Clusterressource sollte 2022-01-01 oder höher lauten.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"isStateless": true,
"isPrimary": false,
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
"vmSize": "[parameters('nodeTypeSize')]",
"vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
"useTempDataDisk": true
}
}
Migrieren zur Verwendung zustandsloser Knotentypen in einem Cluster
Für alle Migrationsszenarien muss ein neuer, zustandsloser Knotentyp hinzugefügt werden. Ein vorhandener Knotentyp kann nicht als zustandslos migriert werden. Sie können einem vorhandenen verwalteten Service Fabric-Cluster einen neuen zustandslosen Knotentyp hinzufügen und alle ursprünglichen Knotentypen aus dem Cluster entfernen.
Nächste Schritte
Weitere Informationen zu verwalteten Service Fabric-Clustern finden Sie in den folgenden Artikeln: