向在 Windows Server 上运行的独立 Service Fabric 群集添加或删除节点

在 Windows Server 计算机上创建独立 Service Fabric 群集之后,(业务)需求可能发生变化,因此需要向群集添加或删除节点。 本文提供了实现此目标的详细步骤。 请注意,在本地开发群集中不支持添加/删除节点的功能。

向群集添加节点

  1. 按照计划和准备 Service Fabric 群集部署中概述的步骤,使要向其添加群集的VM/计算机准备就绪。
  2. 确定要向哪些容错域和升级域添加此 VM/计算机。
  3. 通过远程桌面 (RDP) 方式进入需要向群集添加的 VM/计算机
  4. 向此 VM/计算机复制或下载适用于 Windows Server 的 Service Fabric 独立包,并解压该包
  5. 使用提升的权限运行 Powershell,并导航到解压缩包所在的位置。
  6. 使用描述要添加的新节点的参数运行 AddNode.ps1 脚本。 以下示例将名为 VM5、类型为 NodeType0 且 IP 地址为 182.17.34.52 的新节点添加到 UD1 和 fd:/dc1/r0 中。 ExistingClusterConnectionEndPoint 是现有群集中已有节点的连接终结点,可以是群集中任意节点的 IP 地址。

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

    运行完脚本后,可以通过运行 Get-ServiceFabricNode cmdlet 来检查是否已添加新节点。

  7. 若要确保群集中不同节点的一致性,请务必启动配置升级。 运行 Get ServiceFabricClusterConfiguration 获取最新配置文件并将新添加的节点添加到“Nodes”节。 建议在需要使用相同配置重新部署群集的情况下,始终提供最新的群集配置。

        {
            "nodeName": "vm5",
            "iPAddress": "182.17.34.52",
            "nodeTypeRef": "NodeType0",
            "faultDomain": "fd:/dc1/r0",
            "upgradeDomain": "UD1"
        }
    
  8. 运行 Start-ServiceFabricClusterConfigurationUpgrade 开始升级。

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    可在 Service Fabric Explorer 中监视升级进度。 或者,也可运行 Get-ServiceFabricClusterUpgrade

将节点添加到使用 gMSA 配置 Windows 安全性的群集中。

对于使用组托管服务帐户 (gMSA)(https://technet.microsoft.com/library/hh831782.aspx) 配置的群集,可以使用配置升级添加新的节点:

  1. 在现有的任意节点上运行 Get ServiceFabricClusterConfiguration,获取最新的配置文件,并在“Nodes”节中添加想要添加的新节点相关详细信息。 请确保新节点属于同一组合托管帐户。 此帐户应当是所有计算机的管理员。

        {
            "nodeName": "vm5",
            "iPAddress": "182.17.34.52",
            "nodeTypeRef": "NodeType0",
            "faultDomain": "fd:/dc1/r0",
            "upgradeDomain": "UD1"
        }
    
  2. 运行 Start-ServiceFabricClusterConfigurationUpgrade 开始升级。

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    可在 Service Fabric Explorer 中监视升级进度。 或者,也可运行 Get-ServiceFabricClusterUpgrade

向群集添加节点类型

为了添加新的节点类型,请修改配置,将新节点类型包含在“Properties”下的“NodeTypes”节中,并使用 Start-ServiceFabricClusterConfigurationUpgrade 开始配置升级。 升级完成后,可以使用此节点类型将新节点添加到群集。

从群集中删除节点

可以采用以下方式通过配置升级将节点从群集中删除:

  1. 运行 Get ServiceFabricClusterConfiguration 获取最新配置文件,并将节点从“Nodes”节中删除。 将“NodesToBeRemoved”参数添加到“FabricSettings”节中的“Setup”节。 “value”应是一个逗号分隔列表,其中包含需要删除的节点的节点名称。

         "fabricSettings": [
            {
            "name": "Setup",
            "parameters": [
                {
                "name": "FabricDataRoot",
                "value": "C:\\ProgramData\\SF"
                },
                {
                "name": "FabricLogRoot",
                "value": "C:\\ProgramData\\SF\\Log"
                },
                {
                "name": "NodesToBeRemoved",
                "value": "vm0, vm1"
                }
            ]
            }
        ]
    
  2. 运行 Start-ServiceFabricClusterConfigurationUpgrade 开始升级。

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    可在 Service Fabric Explorer 中监视升级进度。 或者,也可运行 Get-ServiceFabricClusterUpgrade

Note

删除可能启动多个升级的节点。 某些节点标有 IsSeedNode="true" 标记,可使用 Get-ServiceFabricClusterManifest 通过查询群集清单进行标识。 在此类方案中,因为种子节点需要移动,因此删除此类节点相比其他节点需要较长时间。 群集必须至少维护 3 个主节点类型的节点。

从群集中删除节点类型

删除节点类型前,请仔细检查是否存在任何引用该节点类型的节点。 请在删除相应节点类型之前删除这些节点。 删除所有相应节点后,可从群集配置中删除 NodeType 并使用 Start-ServiceFabricClusterConfigurationUpgrade 开始配置升级。

替换群集的主节点

应顺次执行主节点的替换,而不是成批删除,并成批添加。

后续步骤