在執行於 Windows Server 上的獨立 Service Fabric 叢集中新增或移除節點
在 Windows Server 機器上建立獨立 Service Fabric 叢集之後,您的業務需求可能會改變,因此您將需要在叢集中新增或移除節點,如本文所述。
注意
本機開發叢集中不支援節點新增和移除功能。
將節點新增至叢集
遵循規劃和準備 Service Fabric 叢集部署中所述的步驟,準備您要新增至叢集的 VM/機器。
識別要用來新增此 VM/機器的容錯網域和升級網域。
如果您使用憑證來保護叢集,這些憑證應該安裝在本機憑證存放區中,以準備節點加入叢集。 使用其他形式的安全性時,類比適用。
以遠端桌面 (RDP) 登入到要在叢集中新增的 VM/電腦。
複製或下載適用於 Windows Server 的 Service Fabric 獨立套件到此 VM/機器,然後將套件解壓縮。
以較高的權限執行 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 來取得最新的組態檔,然後在 "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
將節點類型新增至叢集
若要新增新的節點類型,請修改您的組態以在 "Properties" 底下的 "NodeTypes" 區段中包含新節點類型,然後使用 Start-ServiceFabricClusterConfigurationUpgrade 來開始組態升級。 升級完成之後,您便可以將此節點類型的新節點新增到您的叢集。
從叢集移除節點
您可以使用組態升級,以下列方式將節點自叢集中移除:
執行 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" } ] } ]
執行 Start-ServiceFabricClusterConfigurationUpgrade 來開始升級。
Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
您可以在 Service Fabric Explorer 中監視升級進度。 或者,您也可以執行 Get-ServiceFabricClusterUpgrade。
注意
移除節點可能會起始多個升級作業。 有些節點帶有 IsSeedNode=”true”
標記標示,透過使用 Get-ServiceFabricClusterManifest
來查詢叢集資訊清單即可識別這些節點。 移除這類節點所需的時間可能比移除其他節點長,因為在這類案例中,需要將種子節點四處移動。 叢集必須至少維持 3 個主要節點類型節點。
從叢集移除節點類型
移除節點之前,請檢查是否有任何節點參考該節點類型。 請先移除這些節點,然後才移除對應的節點類型。 移除所有對應的節點之後,您便可以將該 NodeType 自叢集組態中移除,然後使用 Start-ServiceFabricClusterConfigurationUpgrade 來開始組態升級。
取代您叢集的主要節點
應以逐一取代主要節點的方式來執行,而不是以批次方式移除後再加入。