创建在 Windows Server 上运行的独立群集

可以使用 Azure Service Fabric 在运行 Windows Server 的任何虚拟机或计算机上创建 Service Fabric 群集。 这意味着,可以在包含一组相互连接的 Windows Server 计算机的任何环境(无论是本地环境还是任何云提供商所提供的环境)中部署和运行 Service Fabric 应用程序。 Service Fabric 提供了一个安装程序包,用于创建名为“Windows Server 独立包”的 Service Fabric 群集。 Azure 上的传统 Service Fabric 群集作为托管服务提供,而独立的 Service Fabric 群集是自助服务。 有关差异的详细信息,请参阅比较 Azure 和独立 Service Fabric 群集

本文逐步讲解如何创建 Service Fabric 独立群集。

注意

此独立的 Windows Server 包可供免费商用,并且可用于生产部署。 此包可能包含“预览”形式的新 Service Fabric 功能。 向下滚动至“此包中包含的预览功能”部分以获取预览功能的列表。 可以立即 下载一份 EULA

获取用于 Windows Server 的 Service Fabric 包的支持

下载用于 Windows Server 的 Service Fabric 包

若要创建群集,请使用可在此处找到的用于 Windows Server 的 Service Fabric 包(Windows Server 2012 R2 和更高版本):
下载链接 - Service Fabric 独立包 - Windows Server

此处查找有关包内容的详细信息。

创建群集时,会自动下载 Service Fabric 运行时包。 如果从未连接到 Internet 的计算机进行部署,请从此处下载带外的运行时包:
下载链接 - Service Fabric 运行时 - Windows Server

在此处查找独立群集配置示例:
独特群集配置示例

创建群集

可以通过安装包安装多个示例性的群集配置文件。 ClusterConfig.Unsecure.DevCluster.json 是最简单的群集配置:在单台计算机上运行一个不受保护的三节点群集。 其他配置文件描述的是受 X.509 证书或 Windows 安全措施保护的单机或多机群集。 就本教程来说,无需修改任何默认的配置设置,但仍请查看配置文件,熟悉一下这些设置。 nodes 节描述了群集中的三个节点:名称、IP 地址、节点类型、容错域和升级域properties 节定义群集的安全性、可靠级别、诊断集合和节点类型

本文中创建的群集是不安全的。 任何人都可以进行匿名连接并执行管理操作,因此生产型群集应始终使用 X.509 证书或 Windows 安全措施来确保安全性。 安全性只能在群集创建时配置,不能在创建群集以后启用安全性。 更新配置文件以启用证书安全性Windows 安全性。 请阅读保护群集,详细了解 Service Fabric 群集安全性。

步骤 1:创建群集

方案 A:创建不受保护的本地开发群集

可以使用示例中包含的 ClusterConfig.Unsecure.DevCluster.json 文件将 Service Fabric 部署到单机开发群集。

将独立包解压缩到计算机,将示例配置文件复制到本地计算机,然后通过管理员 PowerShell 会话从独立包文件夹中运行 CreateServiceFabricCluster.ps1 脚本。

.\CreateServiceFabricCluster.ps1 -ClusterConfigFilePath .\ClusterConfig.Unsecure.DevCluster.json -AcceptEULA

有关故障排除的详细信息,请参阅计划和准备群集部署中的环境设置部分。

如果已完成运行开发方案,则可以引用“删除群集”部分的步骤,从计算机中删除 Service Fabric 群集。

方案 B:创建多机群集

在完成计划和准备群集部署中详述的计划和准备步骤后,就可以使用群集配置文件创建生产群集。

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

  1. 独立包中的 TestConfiguration.ps1 脚本可以用作最佳做法分析器,验证群集能否在给定环境中部署。 部署准备列出了先决条件和环境要求。 请运行以下脚本,验证你能否创建开发群集:

    .\TestConfiguration.ps1 -ClusterConfigFilePath .\ClusterConfig.json
    

    应该会看到与下面类似的输出。 如果底部字段“Passed”的返回值为“True”,那么已通过完整性检查,并且根据输入配置群集看似可以部署。

    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
    
  2. 创建群集:运行 CreateServiceFabricCluster.ps1 脚本,以便在配置中的每台计算机上部署 Service Fabric 群集。

    .\CreateServiceFabricCluster.ps1 -ClusterConfigFilePath .\ClusterConfig.json -AcceptEULA
    

注意

部署跟踪被写入到运行 CreateServiceFabricCluster.ps1 PowerShell 脚本的 VM/计算机上。 这些信息可以从运行脚本的目录中的子文件夹 DeploymentTraces 中找到。 按照群集配置文件 FabricSettings 部分中的详述,要查看是否已将 Service Fabric 正确部署到计算机,请查找 FabricDataRoot 目录(默认为 c:\ProgramData\SF)中的已安装文件。 同样,可以看到 FabricHost.exe 和 Fabric.exe 进程在任务管理器中运行。

方案 C:创建脱机(Internet 断开)群集

创建群集时自动下载 Service Fabric 运行时包。 将群集部署到未连接 Internet 的计算机时,需要单独下载 Service Fabric 运行时包,并在创建群集时提供指向它的路径。 运行时包可从另一台连接到 Internet 的计算机单独下载:下载链接 - Service Fabric 运行时 - Windows Server。 将运行时包复制到从中部署脱机群集的位置,并通过运行包含 -FabricRuntimePackagePath 参数的 CreateServiceFabricCluster.ps1 创建群集,如此示例所示:

.\CreateServiceFabricCluster.ps1 -ClusterConfigFilePath .\ClusterConfig.json -FabricRuntimePackagePath .\MicrosoftAzureServiceFabric.cab

.\ClusterConfig.json.\MicrosoftAzureServiceFabric.cab 分别是群集配置和运行时 .cab 文件的路径。

步骤 2:连接至群集

连接到群集以验证群集是否正在运行且可用。 ServiceFabric PowerShell 模块与运行时一起安装。 可以从其中一个群集节点或使用 Service Fabric 运行时从远程计算机连接到群集。 Connect-ServiceFabricCluster cmdlet 可建立到群集的连接。

若要连接到非安全群集,请运行以下 PowerShell 命令:

Connect-ServiceFabricCluster -ConnectionEndpoint <*IPAddressofaMachine*>:<Client connection end point port>

例如:

Connect-ServiceFabricCluster -ConnectionEndpoint 192.13.123.234:19000

有关如何连接到群集的其他示例,请参阅连接到安全群集。 连接到群集以后,请使用 Get-ServiceFabricNode cmdlet 显示群集中节点的列表,以及每个节点的状态信息。 每个节点的 HealthState 应该为“正常”。

PS C:\temp\Microsoft.Azure.ServiceFabric.WindowsServer> Get-ServiceFabricNode |Format-Table

NodeDeactivationInfo NodeName IpAddressOrFQDN NodeType  CodeVersion  ConfigVersion NodeStatus NodeUpTime NodeDownTime HealthState
-------------------- -------- --------------- --------  ----------- ------------- ---------- ---------- ------------ -----------
                     vm2      localhost       NodeType2 5.6.220.9494 0                     Up 00:03:38   00:00:00              OK
                     vm1      localhost       NodeType1 5.6.220.9494 0                     Up 00:03:38   00:00:00              OK
                     vm0      localhost       NodeType0 5.6.220.9494 0                     Up 00:02:43   00:00:00              OK

步骤 3:使用 Service Fabric Explorer 可视化群集

Service Fabric Explorer 是一项很好的工具,适用于可视化群集和管理应用程序。 Service Fabric Explorer 是一项在群集中运行的服务,使用浏览器导航到 http://localhost:19080/Explorer 即可访问该服务。

群集仪表板提供了群集的概览,包括应用程序和节点运行状况的摘要。 节点视图显示群集的物理布局。 对于给定的节点,可以检查已在该节点上部署代码的应用程序。

Service Fabric Explorer

添加和删除节点

当业务需要改变时,可以向独立 Service Fabric 群集添加或删除节点。 参阅向 Service Fabric 独立群集添加或删节点以了解详细步骤。

删除群集

若要删除群集,请运行包文件夹中的 RemoveServiceFabricCluster.ps1 Powershell 脚本,并传入 JSON 配置文件的路径。 可以选择性地指定删除日志的位置。

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

# Removes Service Fabric from each machine in the configuration
.\RemoveServiceFabricCluster.ps1 -ClusterConfigFilePath .\ClusterConfig.json -Force
# Removes Service Fabric from the current machine
.\CleanFabric.ps1

收集的遥测数据以及如何选择禁用遥测

默认情况下,本产品会收集有关 Service Fabric 使用情况的遥测数据来改善自身。 如果无法连接,安装会失败,除非选择禁用遥测。

  1. 这是一种尽力而为的上传操作,不会影响群集功能。 遥测数据只会从运行主要故障转移管理器的节点发送。 其他节点都不会发送遥测数据。
  2. 遥测数据由以下内容组成:
  • 服务数目
  • ServiceTypes 数目
  • Applications 数目
  • ApplicationUpgrades 数目
  • FailoverUnits 数目
  • InBuildFailoverUnits 数目
  • UnhealthyFailoverUnits 数目
  • Replicas 数目
  • InBuildReplicas 数目
  • StandByReplicas 数目
  • OfflineReplicas 数目
  • CommonQueueLength
  • QueryQueueLength
  • FailoverUnitQueueLength
  • CommitQueueLength
  • Nodes 数目
  • IsContextComplete:True/False
  • ClusterId:这是为每个群集随机生成的 GUID
  • ServiceFabricVersion
  • 从其上传遥测数据的虚拟机或计算机的 IP 地址

若要禁用遥测,请将以下内容添加到群集配置中的属性enableTelemetry: false

此包中包括的预览功能

无。

注意

适用于 Windows Server 的独立群集的新 GA 版本(版本 5.3.204.x)开始,可以将群集手动或自动升级到未来版本。 请参阅升级独立 Service Fabric 群集版本文档以获取详细信息。

后续步骤