Distribuire un cluster gestito di Service Fabric con tipi di nodo senza stato
I tipi di nodo di Service Fabric sono costituiti da un presupposto intrinseco che, in un determinato momento, i servizi con stato potrebbero essere posizionati nei nodi. I tipi di nodo senza stato modificano questo presupposto per un tipo di nodo. In questo modo il tipo di nodo può trarre vantaggio da funzionalità quali operazioni di scalabilità orizzontale più veloci, supporto per gli aggiornamenti automatici del sistema operativo, macchine virtuali spot e scalabilità orizzontale a più di 100 nodi in un tipo di nodo.
- I tipi di nodo primario non possono essere configurati per essere senza stato.
- I tipi di nodo senza stato richiedono una versione API 2021-05-01 o successiva.
- Verrà impostata automaticamente la proprietà multipleplacementgroup su true , che è possibile ottenere altre informazioni qui. I requisiti e le limitazioni del set di scalabilità di macchine virtuali sottostanti per abilitare questa proprietà si applicano ai cluster gestiti di Service Fabric.
- In questo modo è possibile supportare fino a 1.000 nodi per il tipo di nodo specificato.
- I tipi di nodo senza stato possono usare un disco temporaneo dello SKU della macchina virtuale.
Abilitazione dei tipi di nodo senza stato in un cluster gestito di Service Fabric
Per impostare uno o più tipi di nodo come senza stato in una risorsa del tipo di nodo, impostare la proprietà isStateless su true. Quando si distribuisce un cluster di Service Fabric con tipi di nodo senza stato, l'installazione richiede almeno un tipo di nodo primario che non è senza stato nel cluster.
Sono disponibili modelli di esempio: modello dei tipi di nodo senza stato di Service Fabric
- La versione API della risorsa cluster gestito di Service Fabric deve essere 2021-05-01 o successiva.
{
"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')]"
}
}
Abilitazione dei tipi di nodo senza stato tramite macchine virtuali spot in un cluster gestito di Service Fabric
Azure Spot Macchine virtuali nei set di scalabilità consente agli utenti di sfruttare la capacità di calcolo inutilizzata con un notevole risparmio sui costi. In qualsiasi momento in cui Azure richiede di nuovo la capacità, l'infrastruttura di Azure rimuove queste istanze di macchine virtuali spot di Azure. Di conseguenza, i tipi di nodo macchina virtuale spot sono ideali per i carichi di lavoro che possono gestire le interruzioni e non devono essere completati entro un intervallo di tempo specifico. I carichi di lavoro consigliati includono sviluppo, test, processi di elaborazione batch, Big Data o altri scenari senza stato su larga scala.
Per impostare uno o più tipi di nodo senza stato per usare la macchina virtuale spot, impostare le proprietà isStateless e IsSpotVM su true. Quando si distribuisce un cluster di Service Fabric con tipi di nodo senza stato, è necessario avere almeno un tipo di nodo primario, che non è senza stato nel cluster. Per impostazione predefinita, i tipi di nodo senza stato configurati per l'uso delle macchine virtuali spot hanno criteri di rimozione impostati su "Elimina". I clienti possono configurare "evictionPolicy" in modo che sia "Delete" o "Deallocate", ma questo può essere definito solo al momento della creazione del tipo di nodo.
Sono disponibili modelli di esempio: modello di tipi di nodo spot di Service Fabric
- L'api della risorsa cluster gestita di Service FabricVersion deve essere 2022-06-01-preview o versione successiva.
{
"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')]"
}
}
Abilitazione di macchine virtuali spot con prova e ripristino
Questa configurazione consente alla piattaforma di provare automaticamente a ripristinare le macchine virtuali spot rimosse. Per informazioni dettagliate, vedere la documentazione del set di scalabilità di macchine virtuali. Questa configurazione può essere abilitata solo nei nuovi tipi di nodo Spot specificando spotRestoreTimeout, ovvero una durata di tempo ISO 8601 con un valore compreso tra 30 e 2880 minuti. La piattaforma tenterà di ripristinare le macchine virtuali per questa durata, dopo la rimozione.
{
"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')]"
}
}
Configurare i tipi di nodo senza stato per la resilienza della zona
Per configurare un tipo di nodo senza stato per la resilienza della zona, è necessario configurare la zona del cluster gestita che si estende a livello di cluster.
Nota
La proprietà di resilienza di zona deve essere impostata a livello di cluster e questa proprietà non può essere modificata sul posto.
Supporto del disco temporaneo
I tipi di nodo senza stato possono essere configurati per usare il disco temporaneo come disco dati anziché come disco gestito. L'uso di un disco temporaneo può ridurre i costi per i carichi di lavoro senza stato. Per configurare un tipo di nodo senza stato per usare il disco temporaneo, impostare la proprietà useTempDataDisk su true.
- Le dimensioni temporanee del disco devono essere pari o superiore a 32 GB. Le dimensioni del disco temporaneo dipendono dalle dimensioni della macchina virtuale.
- Il disco temporaneo non viene crittografato dalla crittografia lato server, a meno che non si abiliti la crittografia nell'host.
- La versione API della risorsa cluster gestito di Service Fabric deve essere 2022-01-01 o successiva.
{
"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
}
}
Eseguire la migrazione all'uso di tipi di nodo senza stato in un cluster
Per tutti gli scenari di migrazione, è necessario aggiungere un nuovo tipo di nodo senza stato. Non è possibile eseguire la migrazione di un tipo di nodo esistente per essere senza stato. È possibile aggiungere un nuovo tipo di nodo senza stato a un cluster gestito di Service Fabric esistente e rimuovere tutti i tipi di nodo originali dal cluster.
Passaggi successivi
Per altre informazioni sui cluster gestiti di Service Fabric Mesh, vedere: