Adicionar ou remover nós de um cluster do Service Fabric autónomo em execução no Windows Server

Depois de criar o cluster autónomo do Service Fabric em computadores Windows Server, as suas necessidades (empresariais) poderão ser alteradas e terá de adicionar ou remover nós ao cluster, conforme descrito neste artigo.

Nota

A funcionalidade de adição e remoção de nós não é suportada em clusters de desenvolvimento locais.

Adicionar nós ao cluster

  1. Prepare a VM/máquina que pretende adicionar ao cluster ao seguir os passos descritos em Planear e preparar a implementação do cluster do Service Fabric.

  2. Identifique o domínio de falha e o domínio de atualização ao qual vai adicionar esta VM/máquina.

    Se utilizar certificados para proteger o cluster, espera-se que os certificados sejam instalados nos arquivos de certificados locais, em preparação para que o nó se associe ao cluster. O analógico é aplicável ao utilizar outras formas de segurança.

  3. Ambiente de trabalho remoto (RDP) na VM/máquina que pretende adicionar ao cluster.

  4. Copie ou transfira o pacote autónomo do Service Fabric para Windows Server para a VM/máquina e deszipe o pacote.

  5. Execute o PowerShell com privilégios elevados e aceda à localização do pacote deszipado.

  6. Execute o scriptAddNode.ps1 com os parâmetros que descrevem o novo nó a adicionar. O exemplo seguinte adiciona um novo nó chamado VM5, com o tipo NodeType0 e o endereço IP 182.17.34.52, em UD1 e fd:/dc1/r0. ExistingClusterConnectionEndPoint é um ponto final de ligação para um nó já existente no cluster, que pode ser o endereço IP de qualquer nó no cluster.

    Nãosecure (prototipagem):

    .\AddNode.ps1 -NodeName VM5 -NodeType NodeType0 -NodeIPAddressorFQDN 182.17.34.52 -ExistingClientConnectionEndpoint 182.17.34.50:19000 -UpgradeDomain UD1 -FaultDomain fd:/dc1/r0 -AcceptEULA
    

    Seguro (baseado em certificado):

    $CertThumbprint= "***********************"
    
    .\AddNode.ps1 -NodeName VM5 -NodeType NodeType0 -NodeIPAddressorFQDN 182.17.34.52 -ExistingClientConnectionEndpoint 182.17.34.50:19000 -UpgradeDomain UD1 -FaultDomain fd:/dc1/r0 -X509Credential -ServerCertThumbprint $CertThumbprint  -AcceptEULA
    

    Quando o script terminar de ser executado, pode verificar se o novo nó foi adicionado ao executar o cmdlet Get-ServiceFabricNode .

  7. Para garantir a consistência em diferentes nós no cluster, tem de iniciar uma atualização de configuração. Execute Get-ServiceFabricClusterConfiguration para obter o ficheiro de configuração mais recente e adicione o nó adicionado recentemente à secção "Nós". Também é recomendado ter sempre a configuração de cluster mais recente disponível, caso precise de reimplementar um cluster que tenha a mesma configuração.

    {
        "nodeName": "vm5",
        "iPAddress": "182.17.34.52",
        "nodeTypeRef": "NodeType0",
        "faultDomain": "fd:/dc1/r0",
        "upgradeDomain": "UD1"
    }
    
  8. Execute Start-ServiceFabricClusterConfigurationUpgrade para iniciar a atualização.

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    Pode monitorizar o progresso da atualização no Service Fabric Explorer. Em alternativa, pode executar Get-ServiceFabricClusterUpgrade.

Adicionar nós a clusters configurados com Segurança do Windows com gMSA

Para clusters configurados com a Conta de Serviço Gerida de Grupo (gMSA)(https://technet.microsoft.com/library/hh831782.aspx), pode ser adicionado um novo nó através de uma atualização de configuração:

  1. Execute Get-ServiceFabricClusterConfiguration em qualquer um dos nós existentes para obter o ficheiro de configuração mais recente e adicionar detalhes sobre o novo nó que pretende adicionar na secção "Nós". Certifique-se de que o novo nó faz parte da mesma conta gerida de grupo. Esta conta deve ser um Administrador em todos os computadores.

    {
        "nodeName": "vm5",
         "iPAddress": "182.17.34.52",
         "nodeTypeRef": "NodeType0",
         "faultDomain": "fd:/dc1/r0",
         "upgradeDomain": "UD1"
    }
    
  2. Execute Start-ServiceFabricClusterConfigurationUpgrade para iniciar a atualização.

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    Pode monitorizar o progresso da atualização no Service Fabric Explorer. Em alternativa, pode executar Get-ServiceFabricClusterUpgrade

Adicionar tipos de nó ao cluster

Para adicionar um novo tipo de nó, modifique a configuração para incluir o novo tipo de nó na secção "NodeTypes" em "Propriedades" e inicie uma atualização de configuração com Start-ServiceFabricClusterConfigurationUpgrade. Assim que a atualização for concluída, pode adicionar novos nós ao cluster com este tipo de nó.

Remover nós do cluster

Um nó pode ser removido de um cluster com uma atualização de configuração da seguinte forma:

  1. Execute Get-ServiceFabricClusterConfiguration para obter o ficheiro de configuração mais recente e remover o nó da secção "Nós". Adicione o parâmetro "NodesToBeRemoved" à secção "Setup" na secção "FabricSettings". O "valor" deve ser uma lista separada por vírgulas de nomes de nós que têm de ser removidos.

     "fabricSettings": [
         {
         "name": "Setup",
         "parameters": [
             {
             "name": "FabricDataRoot",
             "value": "C:\\ProgramData\\SF"
             },
             {
             "name": "FabricLogRoot",
             "value": "C:\\ProgramData\\SF\\Log"
             },
             {
             "name": "NodesToBeRemoved",
             "value": "vm0, vm1"
             }
         ]
         }
     ]
    
  2. Execute Start-ServiceFabricClusterConfigurationUpgrade para iniciar a atualização.

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    Pode monitorizar o progresso da atualização no Service Fabric Explorer. Em alternativa, pode executar Get-ServiceFabricClusterUpgrade.

Nota

A remoção de nós pode iniciar várias atualizações. Alguns nós são marcados com IsSeedNode=”true” etiqueta e podem ser identificados ao consultar o manifesto do cluster com Get-ServiceFabricClusterManifest. A remoção desses nós pode demorar mais do que outros, uma vez que os nós de seed terão de ser movidos nesses cenários. O cluster tem de manter um mínimo de 3 nós de tipo de nó primário.

Remover tipos de nós do cluster

Antes de remover um tipo de nó, verifique se existem nós que referenciem o tipo de nó. Remova estes nós antes de remover o tipo de nó correspondente. Assim que todos os nós correspondentes forem removidos, pode remover o NodeType da configuração do cluster e iniciar uma atualização de configuração com Start-ServiceFabricClusterConfigurationUpgrade.

Substituir os nós primários do cluster

A substituição de nós primários deve ser efetuada um nó após o outro, em vez de remover e, em seguida, adicionar em lotes.

Passos seguintes