Partager via


Déployer un cluster managé Service Fabric avec des types de nœud sans état

Les types de nœuds Service Fabric viennent avec l’hypothèse inhérente qu’à un moment donné, des services avec état peuvent être placés sur les nœuds. Les types de nœuds sans état modifient cette hypothèse pour un type de nœud. Cela permet au type de nœud de bénéficier de certaines fonctionnalités comme l’accélération des opérations de scale-out, la prise en charge des mises à niveau automatiques du système d’exploitation, les machines virtuelles spot ainsi que le scale-out vers plus de 100 nœuds d’un même type.

  • Les types de nœuds principaux ne peuvent pas être configurés pour être sans état.
  • Les types de nœud sans état nécessitent la version d’API 2021-05-01 ou ultérieure.
  • La propriété multipleplacementgroup est automatiquement définie sur true. Pour en savoir plus, consultez cette page.
  • Cela permet la prise en charge de jusqu’à 1 000 nœuds pour le type de nœud donné.
  • Les types de nœud sans état peuvent utiliser un disque temporaire de référence SKU de machine virtuelle.

Activation de types de nœuds sans état dans un cluster managé Service Fabric

Pour définir un ou plusieurs types de nœuds comme sans état dans une ressource de type de nœud, définissez la propriété isStateless sur true. Lors du déploiement d’un cluster Service Fabric avec des types de nœuds sans état, vous devez disposer d’au moins un type de nœud principal qui n’est pas sans état dans le cluster.

Des exemples de modèles sont disponibles : Modèle de types de nœuds sans état Service Fabric

  • L’apiVersion de la ressource de cluster managé Service Fabric doit être 2021-05-01 ou ultérieure.
{
  "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')]"
  }
}

Activation de types de nœuds sans état en utilisant des machines virtuelles spot dans un cluster managé Service Fabric (préversion)

Azure Spot Virtual Machines sur des groupes identiques vous permet de tirer parti de la capacité de calcul inutilisée en réalisant des économies significatives. Dès qu’Azure a besoin de récupérer la capacité, l’infrastructure Azure supprime ces instances de machine virtuelle spot Azure. Les types de nœuds VM spot sont donc appropriées pour les charges de travail qui sont capables de gérer les interruptions et qui n’ont pas besoin d’être effectuées dans un délai d’exécution spécifique. Parmi les charges de travail recommandées, citons le développement, les tests, les travaux de traitement par lots, le Big Data ou d’autres scénarios sans état à grande échelle.

Pour définir un ou plusieurs types de nœuds sans état pour utiliser VM spot, définissez les propriétés isStateless et IsSpotVM sur true. Lors du déploiement d’un cluster Service Fabric avec des types de nœuds sans état, vous devez disposer d’au moins un type de nœud principal qui n’est pas sans état dans le cluster. Les types de nœuds sans état configurés pour utiliser des machines virtuelles spot ont une stratégie d’éviction définie sur « Delete » (Supprimer) par défaut. Les clients peuvent configurer « evictionPolicy » sur « Delete » (Supprimer) ou « Deallocate » (Libérer), mais cela ne peut être défini qu’au moment de créer le type de nœud.

Des exemples de modèles sont disponibles : Modèle de types de nœuds Spot Service Fabric

  • La valeur apiVersion de la ressource de cluster managé Service Fabric doit être 2022-06-01-preview ou ultérieure.
{
  "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')]"
  }
}

Activation des machines virtuelles spot avec Essayer de restaurer

Cette configuration permet à la plateforme d’essayer automatiquement de restaurer les machines virtuelles Spot évincées. Consultez la documentation sur les groupe de machines virtuelles identiques pour plus de détails. Cette configuration peut être activée seulement sur les nouveaux types de nœuds spot en spécifiant spotRestoreTimeout, qui est une durée ISO 8601 dont la valeur est comprise entre 30 et 2 880 minutes. La plateforme tente de restaurer les machines virtuelles pendant cette durée, après l’éviction.

{
  "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')]"
  }
}

Configurer des types de nœuds sans état pour la résilience de zone

Pour configurer un type de nœud sans état pour la résilience de zone, vous devez configurer la répartition des zones de cluster managé au niveau du cluster.

Notes

La propriété de résilience zonale doit être définie au niveau du cluster et ne peut pas être modifiée sur place.

Prise en charge de disque temporaire

Les types de nœud sans état peuvent être configurés pour utiliser un disque temporaire en tant que disque de données au lieu d’un disque managé. L’utilisation d’un disque temporaire peut réduire les coûts des charges de travail sans état. Pour configurer un type de nœud sans état afin d’utiliser le disque temporaire, attribuez à la propriété useTempDataDisk la valeur true.

  • La taille du disque temporaire doit être de 32 Go ou plus. La taille du disque temporaire dépend de la taille de la machine virtuelle.
  • Le disque temporaire n’est pas chiffré par le chiffrement côté serveur, sauf si vous activez le chiffrement sur l’hôte.
  • L’apiVersion de la ressource de cluster managé Service Fabric doit être 2022-01-01 ou ultérieure.
{
  "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
  }
}

Migrer vers l’utilisation de types de nœud sans état dans un cluster

Pour tous les scénarios de migration, un nouveau type de nœud sans état doit être ajouté. Il est impossible de migrer un type de nœud existant pour qu’il soit sans état. Vous pouvez ajouter un nouveau type de nœud sans état à un cluster managé Service Fabric existant et supprimer les types de nœuds originaux du cluster.

Étapes suivantes

Pour plus d’informations sur les clusters Service Fabric managé, consultez :