Bereitstellen eines von Service Fabric verwalteten 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 Skalierungsvorgängen, Unterstützung für automatische Betriebssystemupgrades, Spot-VMs und Skalierung auf mehr als 100 Knoten in einem Knotentyp profitieren.

  • Primäre Knotentypen können nicht so konfiguriert werden, dass sie zustandslos sind.
  • Statuslose Knotentypen erfordern eine API-Version von 2021-05-01 oder höher.
  • Dadurch wird die Eigenschaft multipleplacementgroup automatisch auf true gesetzt. Mehr Informationen darüber finden Sie hier. Die zugrunde liegenden Anforderungen und Einschränkungen von Virtual Machine Scale Sets für die Aktivierung dieser Eigenschaft gelten für verwaltete Service Fabric-Cluster.
  • Dies ermöglicht die Unterstützung für bis zu 1.000 Knoten für den angegebenen Knotentyp.
  • Zustandslose Knotentypen können eine temporäre VM SKU-Festplatte verwenden.

Aktivieren von zustandslosen Knotentypen in einem vom Service Fabric verwalteten Cluster

Wenn Sie einen oder mehrere Knotentypen als zustandslos in einer Knotentypressource festlegen möchten, legen Sie die isStateless-Eigenschaft auf "true" fest. Bei der Bereitstellung eines Service Fabric-Clusters mit zustandslosen Knotentypen erfordert das Setup mindestens einen primären Knotentyp, der nicht zustandslos im Cluster ist.

Beispielvorlagen sind verfügbar: Service-Fabric-Vorlage für Stateless Node-Typen

  • 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 zustandsloser Knotentypen mithilfe von Spot-VMs in einem vom Dienst Fabric verwalteten Cluster

Mit Azure Spot Virtual Machines in Skalierungsgruppen können Benutzer von ungenutzter Computekapazität profitieren und erhebliche Kosteneinsparungen erzielen. Zu jedem Zeitpunkt, zu dem Azure die Kapazität zurück benötigt, entfernt die Azure-Infrastruktur diese Azure Spot Virtual Machine-Instanzen. Daher eignen sich Spot-VM-Knotentypen hervorragend für Workloads, die Unterbrechungen verarbeiten und nicht innerhalb eines bestimmten Zeitraums abgeschlossen werden müssen. Empfohlene Workloads umfassen Entwicklung, Tests, Batchverarbeitungsaufträge, Big Data oder andere groß angelegte zustandslose Szenarien.

Wenn Sie einen oder mehrere zustandslose Knotentypen für die Verwendung von Spot VM festlegen möchten, legen Sie sowohl isStateless - als auch IsSpotVM-Eigenschaften auf "true" fest. Bei der Bereitstellung eines Service Fabric-Clusters mit zustandslosen Knotentypen muss mindestens ein primärer Knotentyp vorhanden sein, der im Cluster 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 die "evictionPolicy" so konfigurieren, dass sie "Delete" oder "Deallocate" lautet, dies kann jedoch nur zum Zeitpunkt der Erstellung des Knotentyps definiert werden.

Beispielvorlagen sind verfügbar: Vorlage für Service Fabric Spot Node-Typen

  • Die apiVersion der vom Service Fabric verwalteten Clusterressourcen sollte 2022-06-01-preview oder höher sein.
{
  "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 Try & Restore

Mit dieser Konfiguration kann die Plattform automatisch versuchen, die verworfenen Spot-VMs wiederherzustellen. Ausführliche Informationen finden Sie im Dokument zum Skalierungssatz für virtuelle Computer. Diese Konfiguration kann nur für neue Spotknotentypen aktiviert werden, indem der SpotRestoreTimeout angegeben wird, bei dem es sich um eine ISO 8601-Zeitdauer mit einem Wert zwischen 30 und 2880 Minuten handelt. 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 die Zonenresilienz

Um einen Stateless-Knotentyp für Zonenresilienz zu konfigurieren, müssen Sie das Spannen der verwalteten Clusterzonen auf Clusterebene konfigurieren.

Hinweis

Die Eigenschaft zur Zonenresilienz muss auf Clusterebene festgelegt werden, und diese Eigenschaft kann nicht geändert werden.

Unterstützung temporärer Datenträger

Zustandslose Knotentypen können so konfiguriert werden, dass der temporäre Datenträger anstelle eines verwalteten Datenträgers als Datenträger verwendet wird. Die Verwendung eines temporären Datenträgers kann die Kosten für zustandslose Workloads reduzieren. Zum Konfigurieren eines zustandslosen Knotentyps für die Verwendung des temporären Datenträgers legen Sie die useTempDataDisk-Eigenschaft auf "true" fest.

  • Die größe des temporären Datenträgers muss 32 GB oder mehr betragen. Die Größe des temporären Datenträgers hängt von der VM-Größe ab.
  • Der temporäre Datenträger wird nicht durch die serverseitige Verschlüsselung verschlüsselt, es sei denn, Sie aktivieren die Verschlüsselung auf dem Host.
  • 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 migriert werden, um zustandslos zu 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 unter: