【问题标题】:Add nodes to Service Fabric cluster将节点添加到 Service Fabric 群集
【发布时间】:2016-09-04 17:58:03
【问题描述】:

由于某种原因,我找不到如何使用服务结构集群执行最基本的操作:添加更多节点。请指教。我找到的最接近的是https://msdn.microsoft.com/en-us/library/azure/mt125881.aspx,这似乎仍然不是我想要的。我所需要的只是一种改变节点数量的方法;我的集群中目前有五个 A1 节点(最简单的配置),我想要六个。

【问题讨论】:

    标签: azure azure-service-fabric


    【解决方案1】:

    1) 更改集群中 VMSS/Node 类型的实例数量的最快方法是提交对 Microsoft.Compute/virtualMachineScaleSets 资源的更改,同时更改“sku”下的“容量”标签。

    添加节点不应导致有状态服务的任何数据丢失。可以删除节点,因此您需要先正常关闭节点,然后再删除该实例。

    添加新节点后,SF 资源平衡器将根据需要进行负载平衡。

    2) 最好的伸缩方式是在 VMSS/Nodetype 上设置自动伸缩规则。详情请参考https://azure.microsoft.com/en-us/documentation/articles/service-fabric-cluster-scale-up-down/

    3) 启用 VMSS 的门户体验后,添加和/删除节点的体验将变得简单,在此之前您必须发出手动 ARM 命令。

    4) https://msdn.microsoft.com/en-us/library/azure/mt125881.aspx - 新的节点配置 API - 您不应该将它用于部署到 Azure 的集群。这会通过服务结构扩展自动发生,一旦出现新的 VMSS 实例就会调用该扩展。

    【讨论】:

    • 更改为“sku”下的“容量”标签 - 我试过了,不行。新节点似乎已配置,但不会自动加入集群。
    • 您的 VMSS 模板是否具有所有必要的 Service Fabric 位? Service Fabric 必须“安装”在 VM 映像之上,因此需要在模板中进行捕获。示例见此处:github.com/Azure/azure-quickstart-templates/blob/master/…
    【解决方案2】:

    这样做的一种方法是重新部署您的模板。如果您没有模板,只是使用门户创建了集群,请转到创建新集群,并在创建前下载模板,推荐here.

    现在显然你不想拥有一个全新的集群,所以你要做的是将模板重新部署到incremental mode.中的现有集群中,在模板中添加部署资源,确保模式元素为增量. (我相信部署实际上默认为增量模式,所以这可能没有必要……但以防万一;))

    {
      "apiVersion": "[variables('apiVersionRm')]",
      "name": "[variables('nestedDeploymentNameVnet')]",
      "type": "Microsoft.Resources/deployments",
      "properties": {
        "mode": "Incremental",
    

    最后,要更改规模集中的节点数量,您只需更改规模集容量元素中的数量即可。

    "sku": {
        "name": "[parameters('vmNodeType0Size')]",
        "capacity": "[parameters('node0Capacity')]",
        "tier": "Standard"
    

    你可以看到我有我的作为参数,所以我可以在重新部署时轻松地将数字更改为我需要的任何值。

    【讨论】:

    • 目标是增加集群的容量而不使其离线或丢失参与者的状态。从您提供的链接来看,似乎整个规模集都将被重新预配,而不是一个 VM 会被添加到其中。也不清楚actor状态会发生什么,但很可能它会消失。当然,我可能会弄错。请让我知道您是否已经这样做了(增量模式升级更改了 VM 规模集容量),或者您只是认为它应该是这样工作的。
    • 它在我的链接中明确表示“不会在模板中定义的相同条件下重新配置资源组中存在的资源”,这是一个指向仅更改容量的模板的链接: github.com/Azure/azure-quickstart-templates/blob/…
    • 但你是对的,我没有检查它是否在改变容量后保持状态。试一试,找出答案!
    • 我不确定“在相同条件下”是什么意思。对我来说,规模集中不同数量的 VM 是规模集的“不同条件”——因此,将重新预配。一般来说,在保持一致性的同时重新分区是一个难题,我强烈怀疑他们通过不允许将机器添加到现有集群/规模集来“解决”这个问题,从而消除了重新分区的需要。如果他们确实实现了它,我希望这个最常见的用例有它自己的 UI 表示,或者至少,它有自己的 powershell 命令。
    • 我怀疑它没有 UI 或 powershell 方式的原因是因为规模集的重点是它会自动缩放。 azure.microsoft.com/en-gb/documentation/articles/…
    猜你喜欢
    • 2020-09-22
    • 1970-01-01
    • 2019-04-07
    • 2017-10-16
    • 2022-10-18
    • 1970-01-01
    • 2018-02-20
    • 2023-04-05
    • 2017-03-13
    相关资源
    最近更新 更多