Aggiungere o rimuovere nodi in un cluster di Service Fabric autonomo eseguito in Windows ServerAdd or remove nodes to a standalone Service Fabric cluster running on Windows Server

Dopo avere creato il cluster autonomo di Service Fabric in computer Windows Server le esigenze aziendali possono cambiare e richiedere l'aggiunta o la rimozione di più nodi nel cluster.After you have created your standalone Service Fabric cluster on Windows Server machines, your (business) needs may change and you will need to add or remove nodes to your cluster. Questo articolo riporta i passaggi dettagliati per ottenere questo risultato.This article provides detailed steps to achieve this. Si noti che la funzionalità di aggiunta o rimozione di nodi non è supportata nei cluster di sviluppo locali.Please note that add/remove node functionality is not supported in local development clusters.

Aggiungere nodi al clusterAdd nodes to your cluster

  1. Preparare la macchina virtuale o il computer da aggiungere al cluster eseguendo la procedura descritta in Creare un cluster autonomo in esecuzione su Windows ServerPrepare the VM/machine you want to add to your cluster by following the steps outlined in Plan and prepare your Service Fabric cluster deployment
  2. Pianificare a quale dominio di errore e dominio di aggiornamento si aggiungerà il computer o la VMIdentify which fault domain and upgrade domain you are going to add this VM/machine to
  3. Creare una connessione Desktop remoto (RDP) con il computer o la VM da aggiungere al clusterRemote desktop (RDP) into the VM/machine that you want to add to the cluster
  4. Copiare o scaricare il pacchetto autonomo di Service Fabric per Windows Server nel computer o nella VM e decomprimerloCopy or download the standalone package for Service Fabric for Windows Server to the VM/machine and unzip the package
  5. Eseguire PowerShell con privilegi elevati e passare alla posizione del pacchetto decompressoRun Powershell with elevated privileges, and navigate to the location of the unzipped package
  6. Eseguire lo script AddNode.ps1 con i parametri che descrivono il nuovo nodo da aggiungere.Run the AddNode.ps1 script with the parameters describing the new node to add. L'esempio seguente aggiunge in UD1 e fd:/dc1/r0 un nuovo nodo denominato VM5 con tipo NodeType0 e indirizzo IP 182.17.34.52.The example below adds a new node called VM5, with type NodeType0 and IP address 182.17.34.52, into UD1 and fd:/dc1/r0. ExistingClusterConnectionEndPoint è un endpoint di connessione per un nodo già presente nel cluster esistente e può corrispondere all'indirizzo IP di qualsiasi nodo del cluster.The ExistingClusterConnectionEndPoint is a connection endpoint for a node already in the existing cluster, which can be the IP address of any node in the cluster.

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

    Al termine dell'esecuzione dello script è possibile eseguire il cmdlet Get-ServiceFabricNode per verificare se il nuovo nodo è stato aggiunto.Once the script finishes running, you can check if the new node has been added by running the Get-ServiceFabricNode cmdlet.

  7. Per garantire la coerenza tra i diversi nodi del cluster è necessario avviare un aggiornamento della configurazione.To ensure consistency across different nodes in the cluster, you must initiate a configuration upgrade. Eseguire Get-ServiceFabricClusterConfiguration per ottenere il file di configurazione più recente e includere il nodo appena aggiunto nella sezione "Nodes".Run Get-ServiceFabricClusterConfiguration to get the latest configuration file and add the newly added node to "Nodes" section. È anche consigliabile avere sempre a disposizione la configurazione cluster più recente in caso fosse necessario ridistribuire un cluster con la stessa configurazione.It is also recommended to always have the latest cluster configuration available in the case that you need to redploy a cluster with the same configuration.

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

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    È possibile monitorare lo stato dell'aggiornamento in Service Fabric Explorer.You can monitor the progress of the upgrade on Service Fabric Explorer. In alternativa è possibile eseguire Get-ServiceFabricClusterUpgrade.Alternatively, you can run Get-ServiceFabricClusterUpgrade

Aggiungere nodi a cluster configurati con la protezione di Windows mediante gMSAAdd nodes to clusters configured with Windows Security using gMSA

Per i cluster configurati con un account del servizio gestito del gruppo (gMSA, Group Managed Service Account) (https://technet.microsoft.com/library/hh831782.aspx) è possibile aggiungere un nuovo nodo con un aggiornamento della configurazione:For clusters configured with Group Managed Service Account(gMSA)(https://technet.microsoft.com/library/hh831782.aspx), a new node can be added using a configuration upgrade:

  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.Run Get-ServiceFabricClusterConfiguration on any of the existing nodes to get the latest configuration file and add details about the new node you want to add in the "Nodes" section. Verificare che il nuovo nodo appartenga allo stesso account gestito del gruppo.Make sure the new node is part of the same group managed account. Questo account deve essere un account Administrator su tutti i computer.This account should be an Administrator on all machines.

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

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    È possibile monitorare lo stato dell'aggiornamento in Service Fabric Explorer.You can monitor the progress of the upgrade on Service Fabric Explorer. In alternativa è possibile eseguire Get-ServiceFabricClusterUpgrade.Alternatively, you can run Get-ServiceFabricClusterUpgrade

Aggiungere tipi di nodi al clusterAdd node types to your 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.In order to add a new node type, modify your configuration to include the new node type in "NodeTypes" section under "Properties" and begin a configuration upgrade using Start-ServiceFabricClusterConfigurationUpgrade. Dopo aver completato l'aggiornamento, è possibile aggiungere al cluster nuovi nodi con questo tipo di nodo.Once the upgrade completes, you can add new nodes to your cluster with this node type.

Rimuovere nodi dal clusterRemove nodes from your cluster

È possibile rimuovere un nodo da un cluster mediante un aggiornamento della configurazione, con le operazioni seguenti:A node can be removed from a cluster using a configuration upgrade, in the following manner:

  1. Eseguire Get-ServiceFabricClusterConfiguration per ottenere il file di configurazione più recente e quindi remove per rimuovere il nodo dalla sezione "Nodes".Run Get-ServiceFabricClusterConfiguration to get the latest configuration file and remove the node from "Nodes" section. Aggiungere il parametro "NodesToBeRemoved" alla sezione "Setup" inclusa nella sezione "FabricSettings".Add the "NodesToBeRemoved" parameter to "Setup" section inside "FabricSettings" section. "value" deve essere un elenco separato da virgole contenente i nomi dei nodi da rimuovere.The "value" should be a comma separated list of node names of nodes that need to be removed.

         "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.Run Start-ServiceFabricClusterConfigurationUpgrade to begin the upgrade.

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    È possibile monitorare lo stato dell'aggiornamento in Service Fabric Explorer.You can monitor the progress of the upgrade on Service Fabric Explorer. In alternativa è possibile eseguire Get-ServiceFabricClusterUpgrade.Alternatively, you can run Get-ServiceFabricClusterUpgrade

Nota

È possibile che con la rimozione di nodi vengano avviati più aggiornamenti in sequenza.Removal of nodes may initiate multiple upgrades. Alcuni nodi sono contrassegnati con il tag IsSeedNode=”true” e possono essere identificati mediante query nel manifesto del cluster usando Get-ServiceFabricClusterManifest.Some nodes are marked with IsSeedNode=”true” tag and can be identified by querying the cluster manifest using Get-ServiceFabricClusterManifest. La rimozione di tali nodi può richiedere più tempo perché comporta lo spostamento dei nodi di inizializzazione.Removal of such nodes may take longer than others since the seed nodes will have to be moved around in such scenarios. Il cluster deve mantenere almeno 3 nodi di tipo primario.The cluster must maintain a minimum of 3 primary node type nodes.

Rimuovere i tipi di nodi dal clusterRemove node types from your cluster

Prima di rimuovere un tipo di nodo, verificare se sono presenti nodi che fanno riferimento al tipo di nodo stesso.Before removing a node type, please double check if there are any nodes referencing the node type. Rimuovere tali nodi prima di rimuovere il tipo di nodo corrispondente.Remove these nodes before removing the corresponding node type. 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.Once all corresponding nodes are removed, you can remove the NodeType from the cluster configuration and begin a configuration upgrade using Start-ServiceFabricClusterConfigurationUpgrade.

Sostituire i nodi primari del clusterReplace primary nodes of your cluster

La sostituzione dei nodi primari deve essere eseguita un nodo alla volta, anziché eseguire la rimozione e l'aggiunta in batch.The replacement of primary nodes should be performed one node after another, instead of removing and then adding in batches.

Passaggi successiviNext steps