如何在本地数据中心安装Service Fabric for Windows集群
概述
首先本文只是對官方文檔(中文,英文)的一個提煉,詳細(xì)的安裝說明還請仔細(xì)閱讀官方文檔。
雖然Service Fabric的官方名稱往往被加上Azure,但是實(shí)際上(估計(jì)很多人不知道)Service Fabric可以安裝到本地?cái)?shù)據(jù)中心或者任意公有云上,這不官方文檔就有一章專門講如何安裝到AWS的內(nèi)容。
所以現(xiàn)在為了區(qū)分,一般把在Azure上提供的開箱即用的PaaS稱之為Azure Service Fabric,而把本地安裝的稱之為Service Fabric Standalone。
同時,Service Fabric既可部署到Windows Server上,也可以部署到Linux上。但是本文書寫的時候,Linux版本只能使用Azure的,官方還沒有發(fā)布本地版本安裝包(但是未來一定會有)。所以本文也是僅限于Windows集群的內(nèi)容。
在本地?cái)?shù)據(jù)中心安裝Service Fabric for Windows集群的時候,可能會受到如下限制的影響:
數(shù)據(jù)中心的服務(wù)器的網(wǎng)絡(luò)是隔離的
數(shù)據(jù)中心的服務(wù)器是不能訪問互聯(lián)網(wǎng)的
環(huán)境準(zhǔn)備
機(jī)器的準(zhǔn)備,需要至少滿足如下要求:
最少16G內(nèi)存
最少40G硬盤空間
4核以上CPU
所有作為集群節(jié)點(diǎn)的機(jī)器在同一網(wǎng)段,互相可通
機(jī)器上安裝Windows Server 2012 R2或Windows Server 2016,如果打算使用容器,那么建議使用Windows Server 1805,可以支持更加小的1805基容器鏡像。
確保Windows安裝了.NET FX 4.5.1以上
確保Windows具有PowerShell 3.0
在所有機(jī)器上確保運(yùn)行RemoteRegistry服務(wù)
域環(huán)境和域賬號:
在數(shù)據(jù)中心中應(yīng)該有一個域控
創(chuàng)建一個普通域賬號,比如:sfadmin
把集群機(jī)器加入到域中(機(jī)器名可以命名為SFNode-01、SFNode-XX等等),并把sfadmin添加到集群機(jī)器的本地管理員組
在域中創(chuàng)建一個機(jī)器組(全局安全組),比如:sfnodes,把所有集群機(jī)器都加到這個組中
雖然可以在某臺集群機(jī)器上來運(yùn)行Service Fabric的安裝包,但是我建議單獨(dú)使用一臺操作機(jī)。操作機(jī)的準(zhǔn)備:
可以使用如下操作系統(tǒng):
Windows 7
Windows 8/Windows 8.1
Windows Server 2012 R2
Windows Server 2016
Windows 10
把操作機(jī)也加到域中
和集群機(jī)器在一個網(wǎng)段,或者能夠訪問到集群機(jī)器
啟用PowerShell腳本執(zhí)行權(quán)限:Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope CurrentUser
安裝Service Fabric SDK。由于操作機(jī)可能也無法正常互聯(lián)網(wǎng),那么可以通過下載離線包的方式來獲取SDK。
安裝包準(zhǔn)備
Service Fabric for Windows的安裝包分為兩個部分:
Service Fabric Standalone Package - Windows Server,這個是安裝程序。以下稱之為安裝包。
Service Fabric Runtime - Windows Server,這個是安裝到集群機(jī)器上的運(yùn)行時。以下稱之為運(yùn)行包。
先通過其他渠道下載這兩個安裝包,然后復(fù)制到內(nèi)網(wǎng)環(huán)境。
在操作機(jī)上解壓安裝包的zip壓縮包,比如解壓到SFSetup文件夾。把運(yùn)行包的cab壓縮包也復(fù)制到SFSetup文件夾備用(不用解壓)。
集群安裝
首先,準(zhǔn)備集群配置文件。
根據(jù)不同的安全配置和集群配置,安裝包提供了多個配置文件模板,分別是:
ClusterConfig.gMSA.Windows.MultiMachine.json 依賴gMSA(Group Managed Service Account)安全機(jī)制的多機(jī)器集群
ClusterConfig.Unsecure.DevCluster.json 非安全開發(fā)集群
ClusterConfig.Unsecure.MultiMachine 非安全多機(jī)器集群
ClusterConfig.Unsecure.OneNode 非安全單節(jié)點(diǎn)集群
ClusterConfig.Windows.DevCluster 依賴Windows賬號安全機(jī)制的開發(fā)集群
ClusterConfig.Windows.MultiMachine 依賴Windows賬號安全機(jī)制的多機(jī)器集群
ClusterConfig.Windows.OneNode 依賴Windows賬號安全機(jī)制的單節(jié)點(diǎn)集群
ClusterConfig.Windows.X509.DevCluster 客戶端訪問依賴Windows賬號服務(wù)器訪問依賴X509證書的開發(fā)集群
ClusterConfig.Windows.X509.MultiMachine 客戶端訪問依賴Windows賬號服務(wù)器訪問依賴X509證書的多機(jī)器集群
ClusterConfig.Windows.X509.OneNode 客戶端訪問依賴Windows賬號服務(wù)器訪問依賴X509證書的單節(jié)點(diǎn)集群
ClusterConfig.X509.DevCluster 依賴X509證書安全機(jī)制的開發(fā)集群
ClusterConfig.X509.MultiMachine 依賴X509證書安全機(jī)制的多機(jī)器集群
ClusterConfig.X509.OneNode 依賴X509證書安全機(jī)制的單節(jié)點(diǎn)集群
總結(jié)起來,Service Fabric for Windows支持非安全、Windows賬號、組托管服務(wù)賬號、X509證書和Windows賬號+X509混合等5種安全模式。
個人建議選擇Windows賬號模型,因?yàn)闇?zhǔn)備工作要簡單一些,成功的機(jī)率也大一些。如果一直報莫名其妙的錯誤,那么使用非安全模式大概率可以成功。在網(wǎng)絡(luò)安全比較嚴(yán)格且機(jī)器加入域的情況下,非安全模式也是可以接受的。
以依賴Windows賬號安全機(jī)制的多機(jī)器集群為例,復(fù)制一份ClusterConfig.Windows.MultiMachine.json文件,重命名為方便處理的名稱,比如ThisClusterConfig.1.0.json。用諸如VSCode這樣的編輯器打開這個json文件。編輯其中的nodes部分。主要是修改iPAddress為每臺機(jī)器的機(jī)器名。ClusterIdentity填入機(jī)器組的名稱sfnodes,Identity改為專用域賬號的名稱sfadmin。nodeTypes根據(jù)情況就暫時用一個或者自定義多個。
示例如下:
對于非安全模式的集群,無非是去掉了security配置節(jié)而已。
接著,對配置文件進(jìn)行測試。
在SFSetup文件夾上打開PowerShell,執(zhí)行如下命令:
.\TestConfiguration.ps1 -ClusterConfigFilePath .\ThisClusterConfig.1.0.json
如果配置文件沒有什么問題的話,會顯示如下提示:
在內(nèi)網(wǎng)環(huán)境下,IsCabValid應(yīng)該會顯示為False的,這個不用擔(dān)心。
最后,基于配置文件創(chuàng)建集群。
繼續(xù)在PS中執(zhí)行如下命令:
.\CreateServiceFabricCluster.ps1 -ClusterConfigFilePath .\ThisClusterConfig.1.0.json –FabricRuntimePackagePath .\MicrosoftAzureServiceFabric.6.3.162.9494.cab
現(xiàn)在祈禱它能一次運(yùn)行成功,如果5臺機(jī)器的話,應(yīng)該能在5分鐘內(nèi)成功。
提示成功后,通過輸入如下命令來嘗試連接集群的管理端口來進(jìn)行驗(yàn)證:
Connect-ServiceFabricCluster -ConnectionEndpoint SFNode-01.contoso.com:19000
或者用瀏覽器打開管理后臺:http://SFNode-01.contoso.com:19080/Explorer/index.html
容器環(huán)境
如果你需要用Service Fabric來編排Windows Container的話,需要預(yù)先在集群機(jī)器上安裝Docker。
由于內(nèi)網(wǎng)環(huán)境的限制,安裝Docker也會稍顯麻煩。根據(jù)Docker.com的官方文檔:https://docs.docker.com/install/windows/docker-ee/#use-a-script-to-install-docker-ee
可以通過命令啟用Windows的容器支持:
(Install-WindowsFeature Containers).RestartNeeded再下載docker的離線包到內(nèi)網(wǎng)環(huán)境后按照步驟進(jìn)行安裝。
同時為了支持集群機(jī)器能夠正常的獲取Docker鏡像,可以在內(nèi)網(wǎng)環(huán)境運(yùn)行一個Docker Registry作為私有鏡像倉庫供內(nèi)部應(yīng)用鏡像的存放處,在外網(wǎng)運(yùn)行一個Docker Registry作為公共鏡像的Mirror,供私有倉庫和集群機(jī)器使用。
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的如何在本地数据中心安装Service Fabric for Windows集群的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebApiClient的JsonPat
- 下一篇: Asp.Net Core实战