惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security @ Cisco Blogs
P
Privacy & Cybersecurity Law Blog
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Project Zero
Project Zero
C
CERT Recently Published Vulnerability Notes
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cisco Blogs
博客园 - 司徒正美
L
LINUX DO - 热门话题
D
Docker
M
MIT News - Artificial intelligence
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Microsoft Security Blog
Microsoft Security Blog
Cisco Talos Blog
Cisco Talos Blog
Jina AI
Jina AI
Last Week in AI
Last Week in AI
Security Latest
Security Latest
The Hacker News
The Hacker News
L
Lohrmann on Cybersecurity
Y
Y Combinator Blog
A
Arctic Wolf
小众软件
小众软件
T
Threat Research - Cisco Blogs
Know Your Adversary
Know Your Adversary
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
腾讯CDC
Google DeepMind News
Google DeepMind News
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - 叶小钗
I
Intezer
NISL@THU
NISL@THU
A
About on SuperTechFans
爱范儿
爱范儿
C
Cybersecurity and Infrastructure Security Agency CISA
D
Darknet – Hacking Tools, Hacker News & Cyber Security
G
Google Developers Blog
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Cyberwarzone
Cyberwarzone
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta
Latest news
Latest news

博客园 - 朱永光

Dapr云原生应用开发系列6:绑定构建块 Dapr云原生应用开发系列7:工作流集成 Dapr微服务应用开发系列5:发布订阅构建块 Dapr微服务应用开发系列4:状态管理构件块 Dapr微服务应用开发系列3:服务调用构件块 Dapr微服务应用开发系列2:Hello World与SDK初接触 Dapr微服务应用开发系列1:环境配置 Dapr微服务应用开发系列0:概述 利用Azure Functions和k8s构建Serverless计算平台 我如何通过K8S开发认证(CKAD)考试 对Windows桌面应用程序进行UI自动化测试 Service Fabric是什么? 如何把遗留的Java应用托管在Service Fabric中 当TFS/VSTS遇上Power BI .NET英文技术文章导读(2017-03-23) .NET英文技术文章导读(2017-02-09) Power BI入门教程 数据分析师的福音——VS 2017带来一体化的数据分析开发环境 如何把Power BI嵌入到Web应用中
如何在本地数据中心安装Service Fabric for Windows集群
朱永光 · 2018-08-09 · via 博客园 - 朱永光

概述

首先本文只是对官方文档(中文英文)的一个提炼,详细的安装说明还请仔细阅读官方文档。

虽然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的安装包分为两个部分:

  1. Service Fabric Standalone Package - Windows Server,这个是安装程序。以下称之为安装包。
  2. 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根据情况就暂时用一个或者自定义多个。

示例如下:

image

对于非安全模式的集群,无非是去掉了security配置节而已。

接着,对配置文件进行测试。

在SFSetup文件夹上打开PowerShell,执行如下命令:

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

如果配置文件没有什么问题的话,会显示如下提示:

image

在内网环境下,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的容器支持:

(Install-WindowsFeature Containers).RestartNeeded

再下载docker的离线包到内网环境后按照步骤进行安装。

同时为了支持集群机器能够正常的获取Docker镜像,可以在内网环境运行一个Docker Registry作为私有镜像仓库供内部应用镜像的存放处,在外网运行一个Docker Registry作为公共镜像的Mirror,供私有仓库和集群机器使用。