Windows Server を実行するスタンドアロン Service Fabric クラスターでノードを追加または削除する
Windows Server マシンでスタンドアロン Service Fabric クラスターを作成した後に、ビジネス ニーズが変更されて、この記事で説明するように、クラスターへのノードの追加や削除が必要になることがあります。
Note
ノードの追加と削除機能は、ローカル開発クラスターではサポートされていません。
クラスターへのノードの追加
「Service Fabric クラスターのデプロイの計画と準備」で概説されている手順に従って、クラスターに追加する VM またはコンピューターを準備します。
この VM またはコンピューターを追加する障害ドメインとアップグレード ドメインを特定します。
証明書を使用してクラスターをセキュリティで保護する場合は、ノードをクラスターに参加させるための準備として、証明書がローカルの証明書ストアにインストールされることが想定されます。 他の形式のセキュリティを使用する場合は、これと類似した方法が適用されます。
クラスターに追加する VM/マシンにリモート デスクトップ (RDP) 接続します。
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 コマンドレットを実行して、新しいノードが追加されたかどうかを確認できます。
クラスター内にある複数のノード間で一貫性を保つには、構成のアップグレードを開始する必要があります。 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 を実行することもできます。
Windows セキュリティで gMSA を使用して構成したクラスターにノードを追加する
グループ管理サービス アカウント (gMSA) を使用して構成したクラスターの場合 (https://technet.microsoft.com/library/hh831782.aspx)、構成のアップグレードを使用して、新しいノードを追加できます。
既存のノードのいずれかで Get-ServiceFabricClusterConfiguration を実行して最新の構成ファイルを取得し、"Nodes" セクションに追加する新しいノードについて詳細を追加します。 新しいノードが同じグループ管理アカウントに属していることを確認します。 このアカウントは、すべてのコンピューターで Administrator である必要があります。
{ "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" セクションからノードを "削除" します。 "FabricSettings" セクション内の "Setup" セクションに "NodesToBeRemoved" パラメーターを追加します。 "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 を実行することもできます。
Note
ノードを削除すると、複数のアップグレードが開始されることがあります。 一部のノードには IsSeedNode=”true”
タグが付けられており、Get-ServiceFabricClusterManifest
を使用してクラスター マニフェストをクエリすることで識別できます。 このようなシナリオでノードを削除する場合、シード ノードを削除する必要があるため、通常よりも長く時間がかかる可能性があります。 クラスターはプライマリ ノードの種類のノードを 3 つ以上維持する必要があります。
クラスターからのノードの種類の削除
ノードの種類を削除する前に、そのノードの種類を参照しているノードがないかどうかを調べてください。 このようなノードを削除してから、対応するノードの種類を削除します。 すべての対応するノードを削除したら、クラスター構成から NodeType を削除し、Start-ServiceFabricClusterConfigurationUpgrade を使用して構成のアップグレードを開始できます。
クラスターのプライマリ ノードの置き換え
プライマリ ノードの置き換えは、まとめて削除して後で追加するのではなく、1 ノードづつ実行する必要があります。