Aggiungere o rimuovere nodi in un cluster di Service Fabric autonomo eseguito in Windows Server

Dopo aver creato il cluster autonomo di Service Fabric nei computer Windows Server, le esigenze (aziendali) potrebbero cambiare e sarà necessario aggiungere o rimuovere nodi al cluster, come descritto in questo articolo.

Nota

L'aggiunta e la rimozione dei nodi non sono supportate nei cluster di sviluppo locali.

Aggiungere nodi al cluster

  1. Preparare la macchina virtuale o il computer da aggiungere al cluster seguendo i passaggi descritti in Pianificare e preparare la distribuzione del cluster di Service Fabric.

  2. Identificare il dominio di errore e il dominio di aggiornamento a cui aggiungere la macchina virtuale o il computer.

    Se si usano certificati per proteggere il cluster, è previsto che i certificati vengano installati negli archivi certificati locali in preparazione del nodo per l'aggiunta al cluster. L'analogico è applicabile quando si usano altre forme di sicurezza.

  3. Creare una connessione Desktop remoto (RDP) con il computer o la VM da aggiungere al cluster.

  4. Copiare o scaricare il pacchetto autonomo per Service Fabric per Windows Server nella macchina virtuale/computer e decomprimere il pacchetto.

  5. Eseguire PowerShell con privilegi elevati e passare al percorso del pacchetto decompresso.

  6. Eseguire lo script AddNode.ps1 con i parametri che descrivono il nuovo nodo da aggiungere. L'esempio seguente aggiunge un nuovo nodo denominato VM5, con tipo NodeType0 e indirizzo IP 182.17.34.52, in UD1 e fd:/dc1/r0. ExistingClusterConnectionEndPoint è un endpoint di connessione per un nodo già presente nel cluster esistente, che può essere l'indirizzo IP di qualsiasi nodo nel cluster.

    Non sicuro (creazione di prototipi):

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

    Secure (basato su certificato):

    $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
    

    Al termine dell'esecuzione dello script, è possibile verificare se il nuovo nodo è stato aggiunto eseguendo il cmdlet Get-ServiceFabricNode .

  7. Per garantire la coerenza tra i diversi nodi del cluster è necessario avviare un aggiornamento della configurazione. Eseguire Get-ServiceFabricClusterConfiguration per ottenere il file di configurazione più recente e aggiungere il nodo appena aggiunto alla sezione "Nodi". È anche consigliabile avere sempre la configurazione del cluster più recente disponibile nel caso in cui sia necessario ridistribuire un cluster con la stessa configurazione.

    {
        "nodeName": "vm5",
        "iPAddress": "182.17.34.52",
        "nodeTypeRef": "NodeType0",
        "faultDomain": "fd:/dc1/r0",
        "upgradeDomain": "UD1"
    }
    
  8. Eseguire Start-ServiceFabricClusterConfigurationUpgrade per avviare l'aggiornamento.

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    È possibile monitorare lo stato dell'aggiornamento in Service Fabric Explorer. In alternativa, è possibile eseguire Get-ServiceFabricClusterUpgrade.

Aggiungere nodi a cluster configurati con la protezione di Windows mediante gMSA

Per i cluster configurati con l'account del servizio gestito del gruppo (gMSA)(https://technet.microsoft.com/library/hh831782.aspx), è possibile aggiungere un nuovo nodo usando un aggiornamento della configurazione:

  1. Eseguire Get-ServiceFabricClusterConfiguration su uno dei nodi esistenti per ottenere il file di configurazione più recente e includere nella sezione "Nodes" i dettagli relativi al nuovo nodo da aggiungere. Verificare che il nuovo nodo appartenga allo stesso account gestito del gruppo. Questo account deve essere un account Administrator su tutti i computer.

    {
        "nodeName": "vm5",
         "iPAddress": "182.17.34.52",
         "nodeTypeRef": "NodeType0",
         "faultDomain": "fd:/dc1/r0",
         "upgradeDomain": "UD1"
    }
    
  2. Eseguire Start-ServiceFabricClusterConfigurationUpgrade per avviare l'aggiornamento.

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    È possibile monitorare lo stato dell'aggiornamento in Service Fabric Explorer. In alternativa è possibile eseguire Get-ServiceFabricClusterUpgrade.

Aggiungere tipi di nodi al cluster

Per aggiungere un nuovo tipo di nodo modificare la configurazione, includere il nuovo tipo di nodo nella sezione "NodeTypes" in "Properties" e avviare un aggiornamento della configurazione usando Start-ServiceFabricClusterConfigurationUpgrade. Dopo aver completato l'aggiornamento, è possibile aggiungere al cluster nuovi nodi con questo tipo di nodo.

Rimuovere nodi dal cluster

È possibile rimuovere un nodo da un cluster mediante un aggiornamento della configurazione, con le operazioni seguenti:

  1. Eseguire Get-ServiceFabricClusterConfiguration per ottenere il file di configurazione più recente e quindi remove per rimuovere il nodo dalla sezione "Nodes". Aggiungere il parametro "NodesToBeRemoved" alla sezione "Setup" inclusa nella sezione "FabricSettings". Il "valore" deve essere un elenco delimitato da virgole dei nomi dei nodi che devono essere rimossi.

     "fabricSettings": [
         {
         "name": "Setup",
         "parameters": [
             {
             "name": "FabricDataRoot",
             "value": "C:\\ProgramData\\SF"
             },
             {
             "name": "FabricLogRoot",
             "value": "C:\\ProgramData\\SF\\Log"
             },
             {
             "name": "NodesToBeRemoved",
             "value": "vm0, vm1"
             }
         ]
         }
     ]
    
  2. Eseguire Start-ServiceFabricClusterConfigurationUpgrade per avviare l'aggiornamento.

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    È possibile monitorare lo stato dell'aggiornamento in Service Fabric Explorer. In alternativa, è possibile eseguire Get-ServiceFabricClusterUpgrade.

Nota

È possibile che con la rimozione di nodi vengano avviati più aggiornamenti in sequenza. Alcuni nodi sono contrassegnati con il tag IsSeedNode=”true” e possono essere identificati mediante query nel manifesto del cluster usando Get-ServiceFabricClusterManifest. La rimozione di tali nodi può richiedere più tempo perché comporta lo spostamento dei nodi di inizializzazione. Il cluster deve mantenere almeno 3 nodi di tipo primario.

Rimuovere i tipi di nodi dal cluster

Prima di rimuovere un tipo di nodo, verificare se sono presenti nodi che fanno riferimento al tipo di nodo stesso. Rimuovere tali nodi prima di rimuovere il tipo di nodo corrispondente. Dopo aver rimosso tutti i nodi corrispondenti, è possibile rimuovere il tipo di nodo (NodeType) dalla configurazione del cluster e avviare un aggiornamento della configurazione mediante Start-ServiceFabricClusterConfigurationUpgrade.

Sostituire i nodi primari del cluster

La sostituzione dei nodi primari deve essere eseguita un nodo alla volta, anziché eseguire la rimozione e l'aggiunta in batch.

Passaggi successivi