在 Azure 上创建第一个 Service Fabric 群集

Service Fabric 群集是一组通过网络连接在一起的虚拟机或物理计算机,你的微服务将在其中部署和管理。 本快速入门可帮助你在数分钟内通过 Azure PowerShellAzure 门户创建一个运行在 Windows 或 Linux 上的五节点型群集。

如果没有 Azure 订阅,可以在开始前创建一个免费帐户

使用 Azure 门户

通过 http://portal.azure.cn 登录到 Azure 门户。

创建群集

  1. 单击 Azure 门户左上角的“新建”按钮。
  2. 从“新建”边栏选项卡选择“计算”,然后从“计算”边栏选项卡选择“Service Fabric 群集”。
  3. 填充 Service Fabric 的“基本信息”表单。 对于“操作系统”,请选择想要群集节点运行的 Windows 或 Linux 版本。 在此处输入的用户名和密码用于登录到虚拟机。 对于“资源组”,请创建一个新的资源组。 资源组是在其中创建并集中管理 Azure 资源的逻辑容器。 完成后,单击“确定”。

    群集设置输出

  4. 填充“群集配置”表单。 对于“节点类型计数”,请输入“1”,而对于耐久性层,请将其设置为“Bronze”。

  5. 选择“配置每个节点类型”并填充“节点类型配置”表单。 节点类型定义 VM 大小、VM 数、自定义终结点,以及该类型 VM 的其他设置。 定义的每个节点类型均作为独立的虚拟机规模集设置,用于以集的形式部署和管理虚拟机。 每个节点类型可以独立扩展或缩减、打开不同的端口集,并且可以有不同的容量指标。 第一个节点类型(主节点类型)用于托管 Service Fabric 系统服务,必须包含至少五个 VM。

    对于任何生产部署,容量规划都是一个重要的步骤。 但就此快速入门来说,你不会运行应用程序,因此请选择“DS1_v2 Standard”VM 大小。 请选择“Silver”作为可靠性层,并选择 5 作为初始虚拟机规模集容量。

    自定义终结点会在 Azure 负载均衡器中打开端口,允许你通过群集上运行的应用程序进行连接。 输入“80, 8172”打开端口 80 和 8172。

    请勿勾选“配置高级设置”框,该框用于自定义 TCP/HTTP 管理终结点、应用程序端口范围、放置约束容量属性

    选择“确定” 。

  6. 在“群集配置”表单中,将“诊断”设置为“开”。 就本快速入门来说,不需输入任何 Fabric 设置属性。 在“Fabric 版本”中,选择“自动”升级模式,让 Microsoft 自动更新运行群集的 Fabric 代码的版本。 若要在升级时选择受支持的版本,请将模式设置为“手动”。

    节点类型配置

    选择“确定” 。

  7. 填充“安全性”表单。 就本快速入门来说,请选择“不安全”。 但是,我们强烈建议为生产型工作负荷创建安全群集,因为任何人都可以匿名连接到不安全的群集并执行管理操作。

    证书在 Service Fabric 中用于提供身份验证和加密,为群集及其应用程序提供全方位的保护。 若要详细了解如何在 Service Fabric 中使用证书,请参阅 Service Fabric 群集安全方案。 若要允许使用 Azure Active Directory 进行用户身份验证,或者要设置证书以确保应用程序安全性,请从 Resource Manager 模板创建群集

    选择“确定” 。

  8. 查看摘要。 若要下载根据输入的设置生成的 Resource Manager 模板,请选择“下载模板和参数”。 选择“创建”可创建群集。

    可以在通知栏中查看群集创建进度。 (单击屏幕右上角状态栏附近的铃铛图标)。如果在创建群集时曾经单击“固定到启动板”,则会看到“部署 Service Fabric 群集”已固定到“启动”板。

查看群集状态

创建群集后,即可在门户的“概览”边栏选项卡中检查群集。 现在,仪表板会显示群集的详细信息,包括群集的公共终结点和 Service Fabric Explorer 的链接。

群集状态

使用 Service Fabric Explorer 可视化群集

Service Fabric Explorer 是一项很好的工具,适用于可视化群集和管理应用程序。 Service Fabric Explorer 是在群集中运行的一项服务。 可以使用 Web 浏览器对其进行访问,方法是在门户中单击群集“概览”页的“Service Fabric Explorer”链接。

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

Service Fabric Explorer

使用 PowerShell 连接到群集

使用 PowerShell 进行连接,验证群集是否正在运行。 ServiceFabric PowerShell 模块与 Service Fabric SDK 一起安装。 Connect-ServiceFabricCluster cmdlet 可建立到群集的连接。

Connect-ServiceFabricCluster -ConnectionEndpoint localhost:19000

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

PS C:\> Get-ServiceFabricNode |Format-Table

NodeDeactivationInfo NodeName     IpAddressOrFQDN NodeType  CodeVersion ConfigVersion NodeStatus NodeUpTime NodeDownTime HealthState
-------------------- --------     --------------- --------  ----------- ------------- ---------- ---------- ------------ -----------
                     _nodetype1_2 10.0.0.6        nodetype1 5.5.216.0   1                     Up 00:59:04   00:00:00              Ok
                     _nodetype1_1 10.0.0.5        nodetype1 5.5.216.0   1                     Up 00:59:04   00:00:00              Ok
                     _nodetype1_0 10.0.0.4        nodetype1 5.5.216.0   1                     Up 00:59:04   00:00:00              Ok
                     _nodetype1_4 10.0.0.8        nodetype1 5.5.216.0   1                     Up 00:59:04   00:00:00              Ok
                     _nodetype1_3 10.0.0.7        nodetype1 5.5.216.0   1                     Up 00:59:04   00:00:00              Ok

删除群集

Service Fabric 群集由群集资源本身以及其他 Azure 资源组成。 因此,若要彻底删除 Service Fabric 群集,还需删除组成该群集的所有资源。 若要删除群集及其占用的所有资源,最简单的方式是删除资源组。 若要了解如何通过其他方式删除群集,或者删除资源组中的部分(而非全部)资源,请参阅删除群集

在 Azure 门户中删除资源组:

  1. 导航到要删除的 Service Fabric 群集。
  2. 在群集基本信息页上单击资源组名称。
  3. 在“资源组基本信息”页中单击“删除”,然后按照该页上的说明进行操作,以完成资源组的删除。 删除资源组

使用 Azure Powershell 部署安全群集

1) 将 Azure Powershell 模块 4.0 或更高版本下载到计算机上。

2) 打开 Windows PowerShell 窗口,运行以下命令。


Get-Command -Module AzureRM.ServiceFabric 

此时会看到类似下面的输出。

ps-list

3) 登录到 Azure,选择要创建群集的订阅


Login-AzureRmAccount -EnvironmentName AzureChinaCloud

Select-AzureRmSubscription -SubscriptionId "Subcription ID" 

4) 现在,请运行以下命令创建安全群集。 不要忘记对参数进行自定义。


$certpwd="Password#1234" | ConvertTo-SecureString -AsPlainText -Force
$RDPpwd="Password#1234" | ConvertTo-SecureString -AsPlainText -Force 
$RDPuser="vmadmin"
$RGname="mycluster" # this is also the name of your cluster
$clusterloc="SouthCentralUS"
$subname="$RGname.$clusterloc.cloudapp.chinacloudapi.cn"
$certfolder="c:\mycertificates\"
$clustersize=1 # can take values 1, 3-99

New-AzureRmServiceFabricCluster -ResourceGroupName $RGname -Location $clusterloc -ClusterSize $clustersize -VmUserName $RDPuser -VmPassword $RDPpwd -CertificateSubjectName $subname -CertificatePassword $certpwd -CertificateOutputFolder $certfolder

此命令可能需要 10 到 30 分钟才能完成,在完成后,你会获得类似于以下内容的输出。 可以通过输出了解证书、其所上传到的 KeyVault,以及其所复制到的本地文件夹。

ps-out

5) 复制整个输出,将其保存到一个文本文件,因为需要参阅该文件。 从输出中记下以下信息。

在本地计算机上安装证书

若要连接到群集,需将证书安装到当前用户的“个人(我的)”存储。

运行以下 PowerShell

Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\My `
        -FilePath C:\mycertificates\the name of the cert.pfx `
        -Password (ConvertTo-SecureString -String certpwd -AsPlainText -Force)

现在可以连接到安全群集了。

连接到安全群集

运行以下 PowerShell 命令,以便连接到安全群集。 证书详细信息必须与设置群集时使用过的证书匹配。

Connect-ServiceFabricCluster -ConnectionEndpoint <Cluster FQDN>:19000 `
          -KeepAliveIntervalInSec 10 `
          -X509Credential -ServerCertThumbprint <Certificate Thumbprint> `
          -FindType FindByThumbprint -FindValue <Certificate Thumbprint> `
          -StoreLocation CurrentUser -StoreName My

以下示例显示了完整的参数:

Connect-ServiceFabricCluster -ConnectionEndpoint mycluster.chinaeast.cloudapp.chinacloudapi.cn:19000 `
          -KeepAliveIntervalInSec 10 `
          -X509Credential -ServerCertThumbprint C4C1E541AD512B8065280292A8BA6079C3F26F10 `
          -FindType FindByThumbprint -FindValue C4C1E541AD512B8065280292A8BA6079C3F26F10 `
          -StoreLocation CurrentUser -StoreName My

运行以下命令,检查是否已连接,以及群集是否处于正常状态。


Get-ServiceFabricClusterHealth

将应用从 Visual Studio 发布到群集

设置 Azure 群集以后,即可按照发布到群集文档中的说明,将应用程序从 Visual Studio 发布到该群集。

删除群集

群集由群集资源本身以及其他 Azure 资源组成。 若要删除群集及其占用的所有资源,最简单的方式是删除资源组。


Remove-AzureRmResourceGroup -Name $RGname -Force

后续步骤

设置开发群集以后,可尝试以下操作: