Partager via

计划和准备你的 Service Fabric 独立版集群部署

在创建群集之前,请执行以下步骤。

规划群集基础结构

你即将在你拥有的计算机上创建一个 Service Fabric 群集,因此可以决定希望群集能够应对哪些类型的故障。 例如,是否需要为这些计算机单独提供电源线或 Internet 连接? 此外,还应考虑这些计算机的物理安全性。 计算机位于何处,谁需要访问它们? 在做出这些决定后,可以采用逻辑方式将计算机映射到多个容错域(请参阅下一步骤)。 相比于测试群集,生产群集的基础结构规划更复杂。

确定容错域和升级域的数目

“容错域 (FD)”是故障的物理单元,与数据中心的物理基础结构直接相关。 容错域由共享单一故障点的硬件组件(计算机、交换机、网络等)组成。 尽管容错域和机架之间没有 1:1 的映射,但松散地说,每个机架都可以被视为容错域。

在 ClusterConfig.json 中指定 FD 时,可以选择每个 FD 的名称。 Service Fabric 支持分层的 FD,因此,可以在 FD 中反映基础结构拓扑。 例如,以下 FD 是有效的:

  • “faultDomain”: “fd:/Room1/Rack1/Machine1”
  • “faultDomain”: “fd:/FD1”
  • “faultDomain”:“fd:/Room1/Rack1/PDU1/M1”

升级域 (UD) 是节点的逻辑单元。 在 Service Fabric 协调式升级(应用程序升级或群集升级)期间,将关闭 UD 中的所有节点以执行升级,而其他 UD 中的节点仍可用来为请求提供服务。 在您的设备上执行的固件升级不遵循 UD,因此必须逐台执行。

领会这些概念的最简单方法是将 FD 视为非计划内故障的单元,将 UD 视为计划维护的单元。

在 ClusterConfig.json 中指定 UD 时,可以选择每个 UD 的名称。 例如,以下名称是有效的:

  • "upgradeDomain":"UD0"
  • "upgradeDomain":"UD1A"
  • "upgradeDomain":"DomainRed"
  • "upgradeDomain":"Blue"

有关 FD 和 UD 的更多详细信息,请参阅 Service Fabric 群集介绍

如果完全控制节点的维护和管理,则生产环境中的群集应至少跨越三个 FD 才能在生产环境中得到支持,也就是说,你负责更新和更换计算机。 对于在您未能完全控制机器(即 Amazon Web Services VM 实例)的环境中运行的集群,应确保集群中至少有五个容错域。 每个 FD 可以有一个或多个节点。 这是为了防止计算机升级和更新造成问题,根据升级和更新的时间,这些问题可能会干扰群集中应用程序和服务的运行。

确定初始群集大小

通常,群集中的节点数是根据业务需求确定的,例如,要在群集上运行多少个服务和容器,以及需要多少个资源来维持工作负荷。 对于生产群集,我们建议在群集中至少跨 5 个 FD 部署 5 个节点。 不过,如上所述,如果您对节点具有完全控制权并且可以跨越三个容灾域,那么三个节点也应该能完成这项工作。

运行有状态工作负荷的测试用群集应当具有三个节点,而运行无状态工作负荷的测试用群集只需要一个节点。 还应当注意,若是用于开发,可以在一台指定的计算机上配备多个节点。 不过,在生产环境中,对于每台物理机或虚拟机,Service Fabric 只支持一个节点。

准备那些将用作节点的计算机

以下是 Service Fabric 群集中计算机的建议规格:

  • 至少 16 GB RAM
  • 至少 40 GB 可用磁盘空间
  • 一个 4 核心或更多核心的 CPU
  • 与所有计算机的安全网络建立连接
  • 已安装 Windows Server 操作系统(有效版本:2012 R2、2016、1709 或 1803)。 Service Fabric 版本 6.4.654.9590 及更高版本还支持 Server 2019 和 1809。
  • .NET Framework 4.5.1 或更高版本的完整安装版
  • Windows PowerShell 3.0
  • 应在所有计算机上运行 RemoteRegistry 服务
  • Service Fabric 安装驱动器必须是 NTFS 文件系统
  • Windows 服务性能日志和警报以及 Windows 事件日志必须启用
  • 必须禁用远程用户帐户控制

重要

部署和配置群集的群集管理员必须拥有每台计算机的 管理员权限 。 不能在域控制器上安装 Service Fabric。

下载适用于 Windows Server 的 Service Fabric 独立包

下载链接 - Service Fabric 独立包 - Windows Server,并将包解压缩到群集外的一台部署计算机中或解压缩到群集内的其中一台计算机中。

修改群集配置

若要创建独立群集,必须创建独立群集配置 ClusterConfig.json 文件,其中描述群集的规范。 可以基于在以下链接中找到的模板创建配置文件。
独立群集配置

有关此文件中各个节的详细信息,请参阅 Windows 独立群集的配置设置

从已下载的包中打开某个 ClusterConfig.json 文件,并修改以下设置:

配置设置 说明
NodeTypes 节点类型可让你将群集节点划分到不同的组中。 一个群集必须至少有一个节点类型。 组中的所有节点具有以下共同特征:
名称 - 即节点类型名称。
终结点端口 - 这些是与此节点类型关联的命名终结点(端口)。 可以使用所需的任何端口号,只要它们与此清单中的其他任何内容不冲突,并且尚未由计算机/VM 上运行的任何其他应用程序使用。
放置属性 - 描述此节点类型的属性,可用作系统服务或你的服务的放置约束。 这些属性是用户定义的键/值对,可为指定节点提供额外的元数据。 节点属性的示例包括节点是否有硬盘或图形卡、其硬盘的轴数、内核数和其他物理属性。
容量 - 节点的容量描述特定节点可供使用的资源名称和数量。 例如,节点可以定义它具有名为“MemoryInMb”的指标的容量,并且它默认有 2048 MB 可用。 这些容量在运行时使用,以确保将需要特定资源量的服务放在具有所需数量的可用资源的节点上。
IsPrimary - 如果定义了多个 NodeType,请确保只有一个设置为主节点(值为 true),系统服务会在该主节点上运行。 应将所有其他节点类型设置为“false”值
Nodes 这些是群集内的每个节点的详细信息(节点类型、节点名称、IP 地址、节点的容错域和升级域)。 要在其上创建群集的计算机必须与其 IP 地址一起列在此处。
如果对所有节点使用相同的 IP 地址,则会创建一个可用于测试的单机群集。 不要将单机群集用于部署生产工作负荷。

群集配置将所有设置配置到环境后,可针对群集环境对其进行测试(步骤 7)。

环境配置

群集管理员配置 Service Fabric 独立群集时,需按照以下准则设置环境:

  1. 创建群集的用户应对群集配置文件中作为节点列出的所有计算机具有管理员级别的安全特权。

  2. 从中创建群集的计算机以及每个群集节点计算机必须:

    • 已卸载 Service Fabric SDK
    • 请卸载 Service Fabric 运行时
    • 已启用 Windows 防火墙服务 (mpssvc)
    • 确保已启用远程注册表服务(远程注册表)
    • 已启用文件共享 (SMB)
    • 根据群集配置端口的要求,请打开必要的端口。
    • 已为 Windows SMB 和远程注册表服务打开了必要的端口:135、137、138、139 和 445
    • 拥有彼此的网络连接
  3. 群集节点计算机不应为域控制器。

  4. 如果要部署的群集是安全群集,需确保存在所需的安全先决条件,且已针对配置进行了正确配置。

  5. 如果群集计算机无法访问 Internet,请在群集配置中设置以下项:

    • 禁用遥测:在“属性”下,设置 "enableTelemetry": false
    • 禁用自动下载 Fabric 版本,以及禁用有关当前群集版本即将终止支持的通知:在 属性 下设置 "fabricClusterAutoupgradeEnabled": false
    • 或者,如果网络 Internet 访问仅限于允许列表中的域,则需要自动升级以下域:go.microsoft.com download.microsoft.com
  6. 设置合适的 Service Fabric 防病毒排除项:

杀毒软件排除的目录
Program Files\Microsoft Service Fabric
FabricDataRoot(从集群配置中)
FabricLogRoot(源于群集配置)
杀毒软件排除的进程
Fabric.exe
FabricHost.exe
FabricInstallerService.exe
FabricSetup.exe
FabricDeployer.exe
ImageBuilder.exe
FabricGateway.exe
FabricDCA.exe
FabricFAS.exe
FabricUOS.exe
FabricRM.exe
FileStoreService.exe

使用 TestConfiguration 脚本验证环境

可以在独立包中找到 TestConfiguration.ps1 脚本。 该脚本可用作最佳做法分析器,验证上述部分标准,并应用作健全性检查,验证是否可在给定环境中部署群集。 如果有任何故障,请参阅 环境设置 下的列表进行故障排除。

可以在对群集配置文件中列为节点的所有计算机具有管理员访问权限的任何计算机上运行此脚本。 运行此脚本的计算机不必要是群集的一部分。

PS C:\temp\Microsoft.Azure.ServiceFabric.WindowsServer> .\TestConfiguration.ps1 -ClusterConfigFilePath .\ClusterConfig.Unsecure.DevCluster.json
Trace folder already exists. Traces will be written to existing trace folder: C:\temp\Microsoft.Azure.ServiceFabric.WindowsServer\DeploymentTraces
Running Best Practices Analyzer...
Best Practices Analyzer completed successfully.

LocalAdminPrivilege        : True
IsJsonValid                : True
IsCabValid                 : True
RequiredPortsOpen          : True
RemoteRegistryAvailable    : True
FirewallAvailable          : True
RpcCheckPassed             : True
NoConflictingInstallations : True
FabricInstallable          : True
Passed                     : True

当前此配置测试模块不验证安全配置,因此这必须独立完成。

注释

我们不断改进此模块,以提高其可靠性。因此,如果存在错误或遗漏的情况,而你认为 TestConfiguration 未能识别,请通过 我们的支持渠道告知我们。

后续步骤