當前位置:
首頁 > 最新 > 如何在本地數據中心安裝Service Fabric for Windows集群

如何在本地數據中心安裝Service Fabric for Windows集群

概述

首先本文只是對官方文檔(中文,英文)的一個提煉,詳細的安裝說明還請仔細閱讀官方文檔。

雖然Service Fabric的官方名稱往往被加上Azure,但是實際上(估計很多人不知道)Service Fabric可以安裝到本地數據中心或者任意公有雲上,這不官方文檔就有一章專門講如何安裝到AWS的內容。

所以現在為了區分,一般把在Azure上提供的開箱即用的PaaS稱之為Azure Service Fabric,而把本地安裝的稱之為Service Fabric Standalone。

同時,Service Fabric既可部署到Windows Server上,也可以部署到Linux上。但是本文書寫的時候,Linux版本只能使用Azure的,官方還沒有發布本地版本安裝包(但是未來一定會有)。所以本文也是僅限於Windows集群的內容。

在本地數據中心安裝Service Fabric for Windows集群的時候,可能會受到如下限制的影響:

數據中心的伺服器的網路是隔離的

數據中心的伺服器是不能訪問互聯網的


機器的準備,需要至少滿足如下要求:

最少16G內存

最少40G硬碟空間

4核以上CPU

所有作為集群節點的機器在同一網段,互相可通

機器上安裝Windows Server 2012 R2或Windows Server 2016,如果打算使用容器,那麼建議使用Windows Server 1805,可以支持更加小的1805基容器鏡像。

確保Windows安裝了.NET FX 4.5.1以上

確保Windows具有PowerShell 3.0

在所有機器上確保運行RemoteRegistry服務

域環境和域賬號:

在數據中心中應該有一個域控

創建一個普通域賬號,比如:sfadmin

把集群機器加入到域中(機器名可以命名為SFNode-01、SFNode-XX等等),並把sfadmin添加到集群機器的本地管理員組

在域中創建一個機器組(全局安全組),比如:sfnodes,把所有集群機器都加到這個組中

雖然可以在某台集群機器上來運行Service Fabric的安裝包,但是我建議單獨使用一台操作機。操作機的準備:

可以使用如下操作系統:

Windows 7

Windows 8/Windows 8.1

Windows Server 2012 R2

Windows Server 2016

Windows 10

把操作機也加到域中

和集群機器在一個網段,或者能夠訪問到集群機器

啟用PowerShell腳本執行許可權:Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope CurrentUser

安裝Service Fabric SDK。由於操作機可能也無法正常互聯網,那麼可以通過下載離線包的方式來獲取SDK。


Service Fabric for Windows的安裝包分為兩個部分:

Service Fabric Standalone Package - Windows Server,這個是安裝程序。以下稱之為安裝包。

Service Fabric Runtime - Windows Server,這個是安裝到集群機器上的運行時。以下稱之為運行包。

先通過其他渠道下載這兩個安裝包,然後複製到內網環境。

在操作機上解壓安裝包的zip壓縮包,比如解壓到SFSetup文件夾。把運行包的cab壓縮包也複製到SFSetup文件夾備用(不用解壓)。


首先,準備集群配置文件。

根據不同的安全配置和集群配置,安裝包提供了多個配置文件模板,分別是:

ClusterConfig.gMSA.Windows.MultiMachine.json 依賴gMSA(Group Managed Service Account)安全機制的多機器集群

ClusterConfig.Unsecure.DevCluster.json 非安全開發集群

ClusterConfig.Unsecure.MultiMachine 非安全多機器集群

ClusterConfig.Unsecure.OneNode 非安全單節點集群

ClusterConfig.Windows.DevCluster 依賴Windows賬號安全機制的開發集群

ClusterConfig.Windows.MultiMachine 依賴Windows賬號安全機制的多機器集群

ClusterConfig.Windows.OneNode 依賴Windows賬號安全機制的單節點集群

ClusterConfig.Windows.X509.DevCluster 客戶端訪問依賴Windows賬號伺服器訪問依賴X509證書的開發集群

ClusterConfig.Windows.X509.MultiMachine 客戶端訪問依賴Windows賬號伺服器訪問依賴X509證書的多機器集群

ClusterConfig.Windows.X509.OneNode 客戶端訪問依賴Windows賬號伺服器訪問依賴X509證書的單節點集群

ClusterConfig.X509.DevCluster 依賴X509證書安全機制的開發集群

ClusterConfig.X509.MultiMachine 依賴X509證書安全機制的多機器集群

ClusterConfig.X509.OneNode 依賴X509證書安全機制的單節點集群

總結起來,Service Fabric for Windows支持非安全、Windows賬號、組託管服務賬號、X509證書和Windows賬號+X509混合等5種安全模式。

個人建議選擇Windows賬號模型,因為準備工作要簡單一些,成功的機率也大一些。如果一直報莫名其妙的錯誤,那麼使用非安全模式大概率可以成功。在網路安全比較嚴格且機器加入域的情況下,非安全模式也是可以接受的。

以依賴Windows賬號安全機制的多機器集群為例,複製一份ClusterConfig.Windows.MultiMachine.json文件,重命名為方便處理的名稱,比如ThisClusterConfig.1.0.json。用諸如VSCode這樣的編輯器打開這個json文件。編輯其中的nodes部分。主要是修改iPAddress為每台機器的機器名。ClusterIdentity填入機器組的名稱sfnodes,Identity改為專用域賬號的名稱sfadmin。nodeTypes根據情況就暫時用一個或者自定義多個。

示例如下:

對於非安全模式的集群,無非是去掉了security配置節而已。

接著,對配置文件進行測試。

在SFSetup文件夾上打開PowerShell,執行如下命令:

.TestConfiguration.ps1 -ClusterConfigFilePath .ThisClusterConfig.1.0.json

如果配置文件沒有什麼問題的話,會顯示如下提示:

在內網環境下,IsCabValid應該會顯示為False的,這個不用擔心。

最後,基於配置文件創建集群。

繼續在PS中執行如下命令:

.CreateServiceFabricCluster.ps1 -ClusterConfigFilePath .ThisClusterConfig.1.0.json –FabricRuntimePackagePath .MicrosoftAzureServiceFabric.6.3.162.9494.cab

現在祈禱它能一次運行成功,如果5台機器的話,應該能在5分鐘內成功。

提示成功後,通過輸入如下命令來嘗試連接集群的管理埠來進行驗證:

Connect-ServiceFabricCluster -ConnectionEndpoint SFNode-01.contoso.com:19000

或者用瀏覽器打開管理後台:http://SFNode-01.contoso.com:19080/Explorer/index.html


如果你需要用Service Fabric來編排Windows Container的話,需要預先在集群機器上安裝Docker。

由於內網環境的限制,安裝Docker也會稍顯麻煩。根據Docker.com的官方文檔:https://docs.docker.com/install/windows/docker-ee/#use-a-script-to-install-docker-ee

可以通過命令啟用Windows的容器支持:

再下載docker的離線包到內網環境後按照步驟進行安裝。

同時為了支持集群機器能夠正常的獲取Docker鏡像,可以在內網環境運行一個Docker Registry作為私有鏡像倉庫供內部應用鏡像的存放處,在外網運行一個Docker Registry作為公共鏡像的Mirror,供私有倉庫和集群機器使用。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 dotNET跨平台 的精彩文章:

ASP.NET Core URL Rewrite中間件

TAG:dotNET跨平台 |