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
Entre no Portal do Azure
Navegue até a página de visão geral do recurso de cluster.
Selecione
Node types
naSettings
seçãoClique em
Add
na parte superior, preencha as informações necessárias e selecione Adicionar na parte inferior, e está pronto.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
comotrue
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
Entre no Portal do Azure
Navegue até a página de visão geral do recurso de cluster. ! [Página Visão geral de amostra][visão geral]
Selecione
Node types
naSettings
seçãoSelecione o
Node Type
que você quer remover e selecioneDelete
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.
Entre no Portal do Azure
Navegue até a página de visão geral do recurso de cluster. ! [Página Visão geral de amostra][visão geral]
Selecione
Node Types
na seçãoSettings
Selecione o
Node type name
que você deseja modificarExamine e atualize as propriedades do tipo de nó, se necessário.
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
ouScale 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, selecioneSave
na parte superior.Escala manual: ajuste o
Node count
para o novo valor que você deseja e selecioneSave
na parte superior. Nessa captura de tela, o valor era3
e foi ajustado para5
.
Selecione
Apply
na parte inferior para definir essas configurações salvas no tipo de nó.O
Provisioning state
mostra um status deUpdating
até ser concluído. Quando concluído, ele mostraSucceeded
novamente.
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-01
ou 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.
Entre no Portal do Azure
Navegue até a página de visão geral do recurso de cluster. ! [Página Visão geral de amostra][visão geral]
Selecione
Node Types
na seçãoSettings
Selecione o
Node type name
que você deseja modificarAjuste o
OS Image
para o novo valor que você deseja e selecioneApply
na parte inferior. ![Exemplo mostrando a alteração da imagem do sistema operacional] [change-os-image]O
Provisioning state
mostra um status deUpdating
e executa um domínio de atualização por vez. Quando concluído, ele mostraSucceeded
novamente.
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.
Entre no Portal do Azure
Navegue até a página de visão geral do recurso de cluster. ! [Página Visão geral de amostra][visão geral]
Selecione
Node Types
na seçãoSettings
Selecione o
Node type name
que você deseja modificarNa seção
Placement properties
, adicione o nome e o valor que você deseja e selecioneApply
na parte inferior. Nesta captura de tela,Name
SSD_Premium
foi usado comValue
detrue
.O
Provisioning state
mostra um status deUpdating
até ser concluído. Quando concluído, ele mostraSucceeded
novamente.
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"
}
}