如何阻止特定Service Fabric节点的服务升级?

问题描述 投票:0回答:1

该问题发生在独立的Service Fabric群集中。

我需要将我的服务发布到专用机器上的指定节点。我还想阻止当前服务在新节点上分配。我阅读了关于放置约束并理解了这个想法,但是当我向Service Fabric集群添加一个新节点时,一个设置为-1的InstanceCount参数的当前服务在我的新节点上分配。我该如何避免这样的情况?我是否必须创建新的节点类型?或者它有任何约束吗?

devops-services azure-service-fabric
1个回答
0
投票

Service Fabric具有NodeTypes的概念,用于标识具有相同配置的Nodes \ Machines \ VM池。如果您的工作负载具有需要特定硬件\软件的特定要求,则场景可以是接收作业的API,以及运行GPU计算应用程序的后台作业,并且您希望将负载与这些节点隔离到您的特定应用程序,至:

  • 创建一个NodeType来托管API,让我们在这里调用FrontEntNodeType,这将是你的apis将被部署到的资源池。在您的API服务中,您必须添加放置约束NodeType == FrontEntNodeType
  • 创建一个NodeType来托管Worker,让我们在这里调用GPUWorkerNodeType,在你的工作服务中你必须添加放置约束NodeType == GPUWorkerNodeType

部署服务时,它们将定位正确的计算机,并且只有具有GPUWorkerNodeType约束的服务才会转到GPU节点来处理工作。

放置约束的最大问题是:如果您未在服务上指定PlacementContraint,它将转到可用于接收负载的任何节点。因此,它不会限制在没有放置限制的情况下部署的旧服务,您必须更新这些服务以保持集群整洁。

您可以使用节点属性执行相同操作,默认情况下,节点包含NodeName和NodeType属性。您可以让具有不同框架版本的节点参与同一NodeType,如果您想在某些节点上升级框架以在应用于所有节点之前验证负载和行为,则可以使用新的框架版本升级几个节点,添加像DotNetFrameworkVersion = 4.7这样的节点的NodeProperty,并使用DotNetFrameworkVersion==4.7和其他(DotNetFrameworkVersion!=4.7)放置一些服务

您可以通过以下链接找到这些信息:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-resource-manager-cluster-description#node-properties-and-placement-constraints

© www.soinside.com 2019 - 2024. All rights reserved.