Compartilhar via


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

Os tipos de nó do Service Fabric já consideram inerentemente que, em algum momento, serviços com estado poderão 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 de SO, VMs de Spot e escalar horizontalmente 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 estado.
  • Os tipos de nó sem estado exigem uma versão de API 2021-05-01 ou mais recente.
  • Isso definirá automaticamente a propriedade multipleplacementgroup para true sobre a qual você pode saber mais aqui. Os requisitos e limitações do conjunto de dimensionamento de máquinas virtuais subjacente para habilitar essa propriedade se aplicam aos clusters gerenciados do Service Fabric.
  • Isso habilita o suporte para até 1,000 nós do tipo de nó fornecido.
  • Os tipos de nó sem estado podem utilizar um disco temporário de SKU de VM.

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

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

Há modelos de exemplo disponíveis: Modelo de tipos de nó sem estado do Service Fabric

  • A apiVersion do recurso de cluster gerenciado do Service Fabric deve ser 2021-05-01 ou mais recente.
{
  "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ós sem estado usando Spot VMs em um cluster gerenciado do Service Fabric

As Máquinas Virtuais de Spot em conjuntos de dimensionamento permitem que os usuários aproveitem a capacidade de computação não utilizada com uma economia significativa de custos. A qualquer momento em que o Azure precisar ter sua capacidade de volta, a infraestrutura do Azure irá expulsar essas instâncias de Máquina Virtual Spot do Azure. Portanto, os tipos de nó de VM de Spot são ótimos para cargas de trabalho que podem lidar com interrupções e não precisam ser concluídas em um período específico. As cargas de trabalho recomendadas incluem desenvolvimento, teste, 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 de Spot, defina as propriedades isStateless e IsSpotVM como true. Quando você implanta um cluster do Service Fabric com tipos de nó sem estado, é necessário ter no cluster pelo menos um tipo de nó primário que não seja sem estado. Os tipos de nó sem estado configurados para usar VMs Spot têm a Política de Remoção definida como 'Delete' 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 nodetype.

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

  • A apiVersion do recurso de cluster gerenciado do Service Fabric 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 Testar e Restaurar

Essa configuração permite que a plataforma tente restaurar automaticamente as VMs Spot removidas. Consulte o documento do conjunto de dimensionamento de máquinas virtuais para obter detalhes. Essa configuração só pode ser habilitada nos novos nodetypes Spot especificando o spotRestoreTimeout, que é uma duração de tempo do ISO 8601 com um valor entre 30 e 2.880 minutos. A plataforma tentará restaurar as VMs durante 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ós sem estado para resiliência de zona

Para configurar um tipo de nó Sem Estado para resiliência de zona, é necessário configurar a abrangência da zona do cluster gerenciado no nível do cluster.

Observação

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

Suporte para disco temporário

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

  • O tamanho do disco temporário deve ser de 32 GB ou mais. O tamanho do disco temporária 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 o uso de 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 estado. Você pode adicionar um novo tipo de nó sem estado a um cluster gerenciado do Service Fabric existente e remover todos os tipos de nó originais do cluster.

Próximas etapas

Para saber mais sobre os clusters gerenciados do Service Fabric, confira: