Partilhar via


Implantar um cluster gerenciado do Service Fabric com tipos de nó sem estado

Os tipos de nó do Service Fabric vêm com uma suposição inerente de que, em algum momento, os serviços com monitoração de estado podem ser colocados nos nós. Os tipos de nó sem estado alteram essa suposição para um tipo de nó. Isso permite que o tipo de nó se beneficie de recursos como operações de expansão mais rápidas, suporte para atualizações automáticas do sistema operacional, VMs spot e escalonamento para mais de 100 nós em um tipo de nó.

  • Os tipos de nó primário não podem ser configurados para serem sem monitoração de estado.
  • Os tipos de nó sem estado exigem uma versão da API de 2021-05-01 ou posterior.
  • Isso definirá automaticamente a propriedade multipleplacementgroup como true, sobre a qual você pode saber mais aqui. Os requisitos e limitações do conjunto de dimensionamento de máquina virtual subjacente para habilitar essa propriedade se aplicam a clusters gerenciados do Service Fabric.
  • Isso permite o suporte para até 1.000 nós para um determinado tipo de nó.
  • Os tipos de nó sem estado podem utilizar um disco temporário de SKU de VM.

Habilitando tipos de nó sem estado em um cluster gerenciado do Service Fabric

Para definir um ou mais tipos de nó como stateless em um recurso de tipo de nó, defina a propriedade isStateless como true. Ao implantar um cluster do Service Fabric com tipos de nó sem monitoração de estado, a configuração requer pelo menos um tipo de nó primário que não seja sem estado no cluster.

Modelos de exemplo estão disponíveis: modelo de tipos de nó sem estado do Service Fabric

  • O recurso de cluster gerenciado do Service Fabric apiVersion deve ser 2021-05-01 ou posterior.
{
  "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')]"
  }
}

Habilitando tipos de nó sem estado usando VMs spot em um cluster gerenciado pelo Service Fabric

As Máquinas Virtuais Spot do Azure em conjuntos de escala permitem que os utilizadores tirem partido da capacidade de computação não utilizada com uma poupança de custos significativa. A qualquer momento em que o Azure precisa da capacidade de volta, a infraestrutura do Azure remove essas instâncias da Máquina Virtual Ponto do Azure. Portanto, os tipos de nó de VM spot são ótimos para cargas de trabalho que podem lidar com interrupções e não precisam ser concluídas dentro de um período de tempo específico. As cargas de trabalho recomendadas incluem desenvolvimento, testes, trabalhos de processamento em lote, big data ou outros cenários sem estado em grande escala.

Para definir um ou mais tipos de nó sem estado para usar a VM spot, defina as propriedades isStateless e IsSpotVM como true. Ao implantar um cluster do Service Fabric com tipos de nó sem estado, é necessário ter pelo menos um tipo de nó primário, que não seja sem estado no cluster. Os tipos de nó sem estado configurados para usar VMs spot têm a Política de Remoção definida como 'Excluir' por padrão. Os clientes podem configurar a 'evictionPolicy' para ser 'Delete' ou 'Deallocate', mas isso só pode ser definido no momento da criação do tipo de nó.

Modelos de exemplo estão disponíveis: modelo de tipos de nó spot do Service Fabric

  • O recurso de cluster gerenciado do Service Fabric apiVersion deve ser 2022-06-01-preview ou posterior.
{
  "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')]"
  }
}

Habilitando VMs spot com Try & Restore

Essa configuração permite que a plataforma tente restaurar automaticamente as VMs Spot removidas. Consulte o documento do conjunto de escala da máquina virtual para obter detalhes. Essa configuração só pode ser habilitada em novos tipos de nó Spot especificando o spotRestoreTimeout, que é uma duração de tempo ISO 8601 com um valor entre 30 e 2880 minutos. A plataforma tentará restaurar as VMs por esse período, após a remoção.

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

Configurar tipos de nó sem estado para resiliência de zona

Para configurar um tipo de nó sem estado para resiliência de zona, você deve configurar a abrangência de zona de cluster gerenciada no nível do cluster.

Nota

A propriedade de resiliência zonal deve ser definida no nível do cluster e essa propriedade não pode ser alterada no local.

Suporte temporário a disco

Os tipos de nó sem estado podem ser configurados para usar o disco temporário como o disco de dados em vez de um disco gerenciado. O uso de um disco temporário pode reduzir os custos de cargas de trabalho sem monitoração de estado. Para configurar um tipo de nó sem estado para usar o disco temporário, defina a propriedade useTempDataDisk como true.

  • O tamanho do disco temporário deve ser de 32 GB ou mais. O tamanho do disco temporário depende do tamanho da VM.
  • O disco temporário não é criptografado pela criptografia do lado do servidor, a menos que você habilite a criptografia no host.
  • O recurso de cluster gerenciado do Service Fabric apiVersion deve ser 2022-01-01 ou posterior.
{
  "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
  }
}

Migrar para usar tipos de nó sem estado em um cluster

Para todos os cenários de migração, um novo tipo de nó sem estado precisa ser adicionado. Um tipo de nó existente não pode ser migrado para ser sem monitoração de estado. Você pode adicionar um novo tipo de nó sem estado a um cluster gerenciado do Service Fabric existente e remover qualquer tipo de nó original do cluster.

Próximos passos

Para saber mais sobre clusters gerenciados do Service Fabric, consulte: