Compartilhar via


Tipos de nó de cluster gerenciados pelo Service Fabric

Cada tipo de nó em um cluster gerenciado do Service Fabric conta com um conjunto de dimensionamento de máquinas virtuais. Com clusters gerenciados, você faz as alterações necessárias por meio do provedor de recursos de cluster gerenciado do Service Fabric. O provedor de cluster gerenciado cria e abstrai todos os recursos subjacentes para o cluster em seu nome. Fazer com que o provedor de recursos gerencie os recursos ajuda a simplificar a implantação e o gerenciamento de tipos de nó de cluster. O gerenciamento impede erros de operação, como excluir um nó de semente, e ajuda a aplicar práticas recomendadas, como validar se é seguro usar um determinado SKU de VM (máquina virtual).

O restante deste documento aborda como ajustar várias configurações, incluindo:

  • Criar um tipo de nó
  • Ajustar a contagem de instâncias de tipo de nó
  • Habilitar atualizações automáticas de imagem do SO
  • Alterar a imagem do sistema operacional
  • Configurar propriedades de posicionamento
  • Defnir o prefixo do nome do computador

Este documento também se concentrará no uso do portal do Azure e de modelos do Azure Resource Manager para fazer alterações.

Importante

No momento, os Clusters Gerenciados do Service Fabric não são compatíveis com imagens do sistema operacional personalizadas.

Observação

Você não poderá modificar o tipo de nó enquanto uma alteração estiver em andamento. Recomendamos permitir que qualquer alteração solicitada seja concluída antes de fazer outra.

Adicionar um tipo de nó

É possível adicionar um tipo de nó a um cluster gerenciado do Service Fabric por meio do Portal, um modelo do Azure Resource Manager ou PowerShell.

Adicionar com portal

Observação

Você só pode adicionar tipos de nó secundários usando o Portal

  1. Entre no Portal do Azure

  2. Navegue até a página de visão geral do recurso de cluster.

  3. Selecione Node types na Settings seção Exibição de tipos de nós

  4. Clique em Add na parte superior, preencha as informações necessárias e selecione Adicionar na parte inferior, e está pronto.

  5. Aguarde a conclusão do novo tipo de nó

Adicionar com um modelo ARM

Adicione outro tipo de recurso Microsoft.ServiceFabric/managedclusters/nodetypes com os valores necessários e faça uma implantação de cluster para que a configuração entre em vigor.

  • A apiVersion do recurso de cluster gerenciado do Service Fabric deve ser 2021-05-01 ou mais recente.
  • Certifique-se de definir isPrimary como true se você pretende substituir um tipo de nó primário existente.
{
    "apiVersion": "[variables('sfApiVersion')]",
    "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('nodeType2Name'))]",
    "location": "[resourcegroup().location]",
    "dependsOn": [
        "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
    ],
    "properties": {
        "isPrimary": false,
        "vmImagePublisher": "[parameters('vmImagePublisher')]",
        "vmImageOffer": "[parameters('vmImageOffer')]",
        "vmImageSku": "[parameters('vmImageSku')]",
        "vmImageVersion": "[parameters('vmImageVersion')]",
        "vmSize": "[parameters('nodeType2VmSize')]",
        "vmInstanceCount": "[parameters('nodeType2VmInstanceCount')]",
        "dataDiskSizeGB": "[parameters('nodeType2DataDiskSizeGB')]",
        "dataDiskType": "[parameters('nodeType2managedDataDiskType')]"
    }
}

Para ver um exemplo de configuração de tipo de dois nós, confira nosso modelo do ARM de tipo de dois nós de exemplo.

Adicionar com o PowerShell

Para criar um tipo de nó, você precisará definir estas propriedades:

  • Grupo de recursos: grupo de recursos em que o cluster estiver
  • Nome do cluster : o nome do cluster do gerenciado
  • Nome do Tipo de Nó: O nome exclusivo de qualquer tipo de nó existente no cluster.
  • Contagem de Instâncias: Número inicial de nós do novo tipo de nó.
  • Tamanho da VM: O SKU da VM para os nós. Se não for especificado, o valor padrão Standard_D2 será usado.

Observação

Se adicionar um tipo de nó principal, a propriedade -Primary deverá ser usada.

$resourceGroup = "myResourceGroup"
$clusterName = "mysfcluster"
$nodeTypeName = "nt2"
$vmSize = "Standard_D2_v2"

New-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -Name $nodeTypeName -InstanceCount 3 -vmSize $vmSize

Remover um tipo de nó

É possível remover um tipo de nó de cluster gerenciado pela Service Fabric usando Portal ou PowerShell.

Observação

Para remover um tipo de nó primário de um cluster gerenciado do Service Fabric, você precisa usar o PowerShell e deve haver mais de um tipo de nó principal disponível.

Remover com portal

  1. Entre no Portal do Azure

  2. Navegue até a página de visão geral do recurso de cluster. ! [Página Visão geral de amostra][visão geral]

  3. Selecione Node types na Settings seção Exibição de tipos de nós

  4. Selecione o Node Type que você quer remover e selecione Delete na parte superior.

Remover com o PowerShell

Observação

Se a remoção de um tipo de nó principal para cenários como a atualização da SKU demorará várias horas e o progresso poderá ser monitorado usando SFX. Os nós semente migrarão um nó por UD (domínio de atualização) de cada vez.

Para remover um tipo de nó, você precisa definir estas propriedades:

  • Grupo de recursos: grupo de recursos em que o cluster estiver
  • Nome do cluster : o nome do cluster do gerenciado
  • Nome do Tipo de Nó: O nome exclusivo de qualquer tipo de nó existente no cluster.
$resourceGroup = "myResourceGroup"
$clusterName = "myCluster"
$nodeTypeName = "nt2"

Remove-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName  -Name $nodeTypeName

Dimensionar um tipo de nó

É possível dimensionar um tipo de nó de cluster gerenciado do Service Fabric com portal, modelo ARM ou PowerShell. Você também pode configurar a escala automática para um tipo de nó secundário se quiser uma solução totalmente automatizada.

Observação

  • Um tipo de nó primário não pode ser definido como dimensionamento automático e você só pode defini-lo como escala manual.
  • Para o tipo de nó Primário, não será possível ter menos de três nós para um cluster de SKU Básico e cinco nós para um cluster de SKU Standard.

Dimensionar usando portal

Neste passo a passo, você aprende a modificar a contagem de nós para um tipo de nó usando o portal.

  1. Entre no Portal do Azure

  2. Navegue até a página de visão geral do recurso de cluster. ! [Página Visão geral de amostra][visão geral]

  3. Selecione Node Types na seção Settings

  4. Selecione o Node type name que você deseja modificar

  5. Examine e atualize as propriedades do tipo de nó, se necessário.

Exemplo mostrando um aumento na contagem de nós

  1. Selecione Manage node type scaling para definir as configurações de dimensionamento e escolha entre o dimensionamento automático personalizado e as opções de escala manual. O Dimensionamento Automático é um recurso integrado que ajuda os aplicativos a terem o melhor desempenho quando a demanda altera. Você pode optar por dimensionar seu recurso manualmente para uma contagem de instâncias específica ou por meio de uma política de dimensionamento automático personalizada que é dimensionada com base nos limites de métrica. Você também pode agendar contagens de instâncias para serem dimensionadas durante janelas de tempo designadas. Saiba mais sobre o Dimensionamento Automático do Azure ou veja o vídeo de instruções.

    • Dimensionamento automático personalizado: selecione o scale mode apropriado para definir a política personalizada de Dimensionamento Automático – Scale to a specific instance count ou Scale based on a metric. Este último se baseia em regras de gatilho de métrica, por exemplo, aumentar a contagem de instâncias em 1 quando o Percentual de CPU estiver acima de 70%. Depois de definir a política, selecione Save na parte superior.

      Amostra que mostra a configuração do dimensionamento automático

    • Escala manual: ajuste o Node count para o novo valor que você deseja e selecione Save na parte superior. Nessa captura de tela, o valor era 3 e foi ajustado para 5.

      Amostra que mostra a configuração da escala manual

    Selecione Apply na parte inferior para definir essas configurações salvas no tipo de nó.

  2. O Provisioning state mostra um status de Updating até ser concluído. Quando concluído, ele mostra Succeeded novamente. Exemplo mostrando uma atualização de tipo de nó

Dimensionar um tipo de nó com um modelo

Para ajustar a contagem de nós para um tipo de nó usando um Modelo do ARM, ajuste a propriedade vmInstanceCount com o novo valor e faça uma implantação de cluster para que a configuração entre em vigor. O cluster começa a ser atualizado automaticamente. Você verá os nós adicionais quando concluído.

  • A apiVersion do recurso de cluster gerenciado do Service Fabric deve ser 2021-05-01 ou mais recente.

Observação

O provedor de cluster gerenciado bloqueará os ajustes de escala e retornará um erro se a solicitação de escala violar os mínimos necessários.

{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
    ...
  }
}

Dimensionar um tipo de nó com o PowerShell

Altere a contagem de instâncias para aumentar ou diminuir o número de nós no tipo de nó que você deseja escalar. Você pode localizar nomes de tipo de nó no modelo do ARM (Azure Resource Manager) da sua implantação de cluster ou no Service Fabric Explorer.

$resourceGroup = "myResourceGroup"
$clusterName = "mysfcluster"
$nodeTypeName = "FE"
$instanceCount = "7"

Set-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -name $nodeTypeName -InstanceCount $instanceCount -Verbose

O cluster começa a ser atualizado automaticamente. Você verá os nós adicionais quando concluído.

Habilitar atualizações automáticas de imagem do SO

Você pode optar por habilitar atualizações automáticas de imagem do sistema operacional para as máquinas virtuais que executam seus nós de cluster gerenciado. Embora os recursos do conjunto de dimensionamento de máquinas virtuais sejam gerenciados em seu nome com clusters gerenciados do Service Fabric, é você que escolhe habilitar ou não as atualizações automáticas de imagem do sistema operacional para seus nós de cluster. Assim como os clusters do Service Fabric clássico, os nós de cluster gerenciados não são atualizados por padrão, a fim de evitar interrupções não intencionais no cluster.

Observação

Há suporte para a atualização automática da imagem do sistema operacional para imagens personalizadas e marketplace.

Para habilitar atualizações automáticas do sistema operacional:

  • Use a apiVersion 2021-05-01ou versão posterior dos recursos Microsoft.ServiceFabric/managedclusters e Microsoft.ServiceFabric/managedclusters/nodetypes
  • Defina a propriedade enableAutoOSUpgrade do cluster como true
  • Defina a propriedade de recurso de nodeTypes do cluster vmImageVersion como mais recente

Por exemplo:

    {
      "apiVersion": "[variables('sfApiVersion')]",
      "type": "Microsoft.ServiceFabric/managedclusters",
      ...
      "properties": {
        ...
        "enableAutoOSUpgrade": true
      },
    },
    {
      "apiVersion": "[variables('sfApiVersion')]",
      "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
       ...
      "properties": {
        ...
        "vmImageVersion": "latest",
        ...
      }
    }
}

Uma vez habilitado, o Service Fabric começa a consultar e controlar as versões de imagem do sistema operacional no cluster gerenciado. Se uma nova versão do sistema operacional estiver disponível, os tipos de nó de cluster (conjuntos de dimensionamento de máquinas virtuais) serão atualizados, um de cada vez. As atualizações de tempo de execução do Service Fabric são executadas somente após a confirmação de que nenhuma atualização de imagem do sistema operacional do nó do cluster está em andamento.

Se uma atualização falhar, o Service Fabric tentará novamente após 24 horas, para um máximo de três repetições. Semelhante às atualizações de Service Fabric clássicas (não gerenciadas), os aplicativos ou nós não íntegros podem bloquear a atualização da imagem do sistema operacional.

Para obter mais informações sobre atualizações de imagem, consulte atualizações automáticas de imagem de sistema operacional com conjuntos de dimensionamento de máquinas virtuais do Azure.

Modificar a SKU do sistema operacional para um tipo de nó

Os clusters gerenciados do Service Fabric permitem modificar a SKU do sistema operacional para um tipo de nó no local. Esse processo é útil para cenários como migrar do Windows 2019 para o Windows 2022 ou se você deseja alternar para uma SKU servidor (Core) vs Server com SKU de Experiência de Área de Trabalho.

Modificar a SKU do sistema operacional com portal

Neste passo a passo, você aprenderá a modificar a imagem do sistema operacional de um tipo de nó usando o portal.

  1. Entre no Portal do Azure

  2. Navegue até a página de visão geral do recurso de cluster. ! [Página Visão geral de amostra][visão geral]

  3. Selecione Node Types na seção Settings

  4. Selecione o Node type name que você deseja modificar

  5. Ajuste o OS Image para o novo valor que você deseja e selecione Apply na parte inferior. ![Exemplo mostrando a alteração da imagem do sistema operacional] [change-os-image]

  6. O Provisioning state mostra um status de Updating e executa um domínio de atualização por vez. Quando concluído, ele mostra Succeeded novamente. Exemplo mostrando uma atualização de tipo de nó

Modificar a SKU do sistema operacional com um modelo

Para modificar a imagem do sistema operacional para um tipo de nó usando um Modelo do ARM, ajuste a propriedade vmImageSku com o novo valor e faça uma implantação de cluster para que a configuração entre em vigor. O provedor de cluster gerenciado recriará a imagem de cada instância por domínio de atualização.

  • 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]",
  "properties": {
    ...
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    ...
  }
}

Configurar as propriedades de posicionamento para um tipo de nó

As propriedade de posicionamento são usadas para garantir que determinadas que certas cargas de trabalho sejam executadas apenas em certos tipos de nós no cluster. Os clusters gerenciados do Service Fabric oferecem suporte à configuração dessas propriedades por meio de portal, modelo ARM ou PowerShell.

Configurar propriedades de posicionamento com portal

Neste passo a passo, você aprenderá a modificar uma propriedade de posicionamento de um tipo de nó usando o portal.

  1. Entre no Portal do Azure

  2. Navegue até a página de visão geral do recurso de cluster. ! [Página Visão geral de amostra][visão geral]

  3. Selecione Node Types na seção Settings

  4. Selecione o Node type name que você deseja modificar

  5. Na seção Placement properties, adicione o nome e o valor que você deseja e selecione Apply na parte inferior. Nesta captura de tela, Name SSD_Premium foi usado com Value de true. Exemplo mostrando a adição de uma propriedade de posicionamento

  6. O Provisioning state mostra um status de Updating até ser concluído. Quando concluído, ele mostra Succeeded novamente. Exemplo mostrando uma atualização de tipo de nó

Configurar propriedades de posicionamento com um modelo

Para ajustar as propriedades de posicionamento para um tipo de nó usando um modelo do ARM, ajuste a propriedade placementProperties com um ou mais novos valores e faça uma implantação de cluster para que a configuração entre em vigor. A amostra abaixo mostra três valores sendo definidos para um tipo de nó.

  • 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]",
  "properties": {
    "placementProperties": {
      "PremiumSSD": "true",
      "NodeColor": "green",
      "SomeProperty": "5"
    }
  }
}

Configurar propriedades de posicionamento com PowerShell

O exemplo a seguir atualiza e substitui quaisquer propriedades de posicionamento existentes para um determinado tipo de nó.

$rgName = "testRG"
$clusterName = "testCluster"
$NodeTypeName = "nt1"
Set-AzServiceFabricManagedNodeType -ResourceGroupName $rgName -ClusterName $clusterName -name $NodeTypeName -PlacementProperty @{NodeColor="Red";SomeProperty="6";} -Verbose

Modificar a SKU da VM para um tipo de nó

Para modificar o tamanho da SKU da VM usada para um tipo de nó usando um Modelo do ARM, ajuste a propriedade vmSize com o novo valor e faça uma implantação de cluster para que a configuração entre em vigor. O provedor de cluster gerenciado recriará a imagem de cada instância por domínio de atualização. Para obter uma lista de opções de SKU, consulte Tamanhos de VM – Máquinas Virtuais do Azure | Microsoft Learn.

{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmSize": "[parameters('vmImageVersion')]",
    ...
  }
}

Configurar vários discos gerenciados

Os clusters gerenciados do Service Fabric configuram um disco gerenciado por padrão. Ao configurar a propriedade e os valores opcionais a seguir, você pode adicionar mais discos gerenciados aos tipos de nó em um cluster. Você pode especificar a letra da unidade, o tipo de disco e o tamanho por disco.

Configure mais discos gerenciados declarando a propriedade additionalDataDisks e os parâmetros necessários no modelo do ARM da seguinte forma:

Requisitos de Recursos

  • Lun deve ser único por disco e não é possível usar a unidade reservada 0 ou 1
  • A letra do disco não pode usar as letras reservadas C ou D e não pode ser modificada depois de criada. Se não for especificado, S será usado por padrão.
  • Deve-se especificar um tipo de disco com suporte
  • 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]",
  "properties": {
    "additionalDataDisks": {
      "lun": "2",
      "diskSizeGB": "50",
      "diskType": "Standard_LRS",
      "diskLetter": "S" 
    }
  }
}

Confira a lista completa de parâmetros disponíveis.

Configurar a letra da unidade de disco de dados do Service Fabric

Por padrão, os clusters gerenciados do Service Fabric configuram um disco de dados do Service Fabric e configuram automaticamente a letra da unidade em todos os nós de um tipo de nó. Ao configurar essa propriedade e esse valor opcionais, você poderá especificar e recuperar a letra do disco de dados do Service Fabric, se tiver requisitos específicos para mapeamento de letra da unidade.

Requisitos de Recursos

  • A letra do disco não pode usar as letras reservadas C ou D e não pode ser modificada depois de criada. S será usado como padrão, se não for especificado.
  • 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]",
    "properties": {
      "dataDiskLetter": "S"
    }
  }
}

Definir o prefixo do nome do computador

Os clientes que exigem nomes mais longos para o tipo de nó para obter uma descrição mais detalhada se beneficiam do prefixo de nome do computador.

Observação

O prefixo de nome do computador funciona apenas para a versão 2024-04-01 or later da API do Service Fabric.

Implemente as seguintes alterações de modelo do ARM para definir o prefixo de nome do computador:

{
  "apiVersion": "2024-04-01",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', 'BE-testResourceGroup-testRegion-test')]",
  "location": "[parameters('clusterLocation')]",
  "dependsOn": [
      "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isPrimary": false,
    "dataDiskSizeGB": "[parameters('dataDiskSizeGB')]",
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('vmSize')]",
    "vmInstanceCount": "[parameters('vmInstanceCount')]",
    "computerNamePrefix": "computerNamePrefix"
  }
} 

Próximas etapas