向在 Windows Server 上运行的独立 Service Fabric 群集添加或删除节点
在 Windows Server 计算机上创建独立 Service Fabric 群集之后,(业务)需求可能发生变化,因此你需要在群集中添加或删除节点,如本文所述。
注意
本地开发群集不支持节点添加和删除功能。
向群集添加节点
按照计划和准备 Service Fabric 群集部署中概述的步骤,使要向其添加群集的VM/计算机准备就绪。
确定要向哪些容错域和升级域添加此 VM/计算机。
如果使用证书来保护群集,则应将证书安装在本地证书存储中,为节点加入群集做准备。 使用其他形式的安全性时,模拟适用。
通过远程桌面 (RDP) 方式进入需要向群集添加的 VM/计算机。
向此 VM/计算机复制或下载适用于 Windows Server 的 Service Fabric 独立包,并解压该包。
使用提升的权限运行 PowerShell,然后转到解压缩包所在的位置。
使用描述要添加的新节点的参数运行 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
安全(基于证书):
$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
运行完脚本后,可以通过运行 Get-ServiceFabricNode cmdlet 来检查是否已添加新节点。
要确保群集中不同节点的一致性,请务必启动配置升级。 运行 Get ServiceFabricClusterConfiguration 获取最新配置文件并将新添加的节点添加到“Nodes”节。 如果需要重新部署使用相同配置的群集,也建议始终使用最新的群集配置。
{ "nodeName": "vm5", "iPAddress": "182.17.34.52", "nodeTypeRef": "NodeType0", "faultDomain": "fd:/dc1/r0", "upgradeDomain": "UD1" }
请运行 Start-ServiceFabricClusterConfigurationUpgrade 开始升级。
Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
可在 Service Fabric Explorer 中监视升级进度。 或者,也可运行 Get-ServiceFabricClusterUpgrade。
将节点添加到使用 gMSA 配置 Windows 安全性的群集中。
对于使用组托管服务帐户(gMSA)(https://technet.microsoft.com/library/hh831782.aspx) 配置的群集,可以使用配置升级添加新的节点:
在现有的任意节点上运行 Get ServiceFabricClusterConfiguration,获取最新的配置文件,并在“节点”部分添加想要添加的新节点相关详细信息。 请确保新节点属于同一组合托管帐户。 此帐户应当是所有计算机的管理员。
{ "nodeName": "vm5", "iPAddress": "182.17.34.52", "nodeTypeRef": "NodeType0", "faultDomain": "fd:/dc1/r0", "upgradeDomain": "UD1" }
请运行 Start-ServiceFabricClusterConfigurationUpgrade 开始升级。
Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
可在 Service Fabric Explorer 中监视升级进度。 或者,也可运行 Get-ServiceFabricClusterUpgrade
向群集添加节点类型
为了添加新的节点类型,请修改配置,将新节点类型包含在“属性”下的“节点类型”部分,并使用 Start-ServiceFabricClusterConfigurationUpgrade 开始配置升级。 升级完成后,可以使用此节点类型将新节点添加到群集。
从群集中删除节点
可以采用以下方式通过配置升级将节点从群集中删除:
运行 Get ServiceFabricClusterConfiguration 获取最新配置文件,并将节点从“节点”部分删除 。 将 "NodesToBeRemoved" 参数添加到 "FabricSettings" 中的“设置”部分。 “value”应是一个逗号分隔列表,其中包含需要删除的节点的节点名称。
"fabricSettings": [ { "name": "Setup", "parameters": [ { "name": "FabricDataRoot", "value": "C:\\ProgramData\\SF" }, { "name": "FabricLogRoot", "value": "C:\\ProgramData\\SF\\Log" }, { "name": "NodesToBeRemoved", "value": "vm0, vm1" } ] } ]
请运行 Start-ServiceFabricClusterConfigurationUpgrade 开始升级。
Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
可在 Service Fabric Explorer 中监视升级进度。 或者,也可运行 Get-ServiceFabricClusterUpgrade。
注意
删除可能启动多个升级的节点。 某些节点标有 IsSeedNode="true"
标记,可使用 Get-ServiceFabricClusterManifest
通过查询群集清单进行标识。 在此类方案中,因为种子节点需要移动,因此删除此类节点相比其他节点需要较长时间。 群集必须至少维护 3 个主节点类型的节点。
从群集中删除节点类型
删除节点类型之前,请检查是否存在任何引用该节点类型的节点。 请在删除相应节点类型之前删除这些节点。 删除所有相应节点后,可从群集配置中删除节点类型并使用 Start-ServiceFabricClusterConfigurationUpgrade 开始配置升级。
替换群集的主节点
应逐个节点地替换主节点,而不是批量删除再添加。