我找不到任何具体的文档来说明主节点和非主节点之间的区别以及如何使用它们。有人可以阐明吗?谢谢。
答案 0 :(得分:3)
如果将 Service Fabric 与其他编排工具(例如 Kubernetes )进行比较,您会发现在定义集群方面存在细微的差别。
Kubernetes使用 Master 来托管群集管理服务,并使用 Minion 来托管应用程序服务(容器)。在1.1版之前,无法在主服务器上运行容器,因为它的思想是应隔离 Master 以避免与在其上运行的容器冲突消耗过多的内存,磁盘,CPU等。
在 Service Fabric 上,这有点不同。当您将NodeType定义为Primary时,在集群内部意味着该 NodeType 将负责托管Service Fabric管理服务(控制集群所需的服务)。健康,编排等)。
通过Azure Portal部署群集时,根据您选择的持久性层(铜,银,金),将需要在“主节点类型”上有一定数量的节点,以保持群集管理的健康。对于生产工作负载,其中有状态工作负载的 Primary NodeType 或NonPrimary的最小建议大小为5个节点。支持的最低使用VM SKU是Standard D1或Standard D1_V2。
存在主要节点类型的陷阱,不支持更改VMSS Sku(大小),您可以自行承担风险,但这是灾难的根源,因为失去管理服务的风险过高。
非主要NodeType ,除了上面提到的以外,没有其他总体差异。所有NodeType都将具有VMSS和LoadBalancer(具有域),它们能够配置访问规则。所有NodeType的限制为100个节点。
与Kubernetes相比,SF不会添加任何约束来阻止您将服务与管理服务一起部署在主节点上。每个节点都是资源池(包括主节点)的一部分。因此,默认行为是无论节点类型如何,都在每个可用节点上部署应用程序。
计划更大的群集(100个以上的节点)时,请务必将其考虑在内,并从工作负载中隔离主要NodeType,并减轻管理服务节点的压力。
答案 1 :(得分:2)
在以下情况下,具有多个节点类型可能很有用:
您要运行暴露于Internet的服务和未暴露的服务。第一组将在连接到负载均衡器的节点类型(VMSS)上运行,而第二组将在没有的节点类型上运行。
您需要在优质硬件上为某些客户运行服务,并在廉价硬件上进行试用。第一组将在具有大量CPU和大量RAM的节点上运行。较低SKU的第二个。
您要构建的群集超出一个VMSS可以容纳的最大节点数。 或者您需要动态添加比例尺集以支持巨大的增长。
并且:主要节点运行您的系统服务,而次要节点不运行。
答案 2 :(得分:1)
没有太大区别。不同节点类型的节点都共享服务结构群集的相同特征。他们都参与负载均衡等。 除了一件事:系统服务仅在主要节点类型(source)的节点上运行:
主要节点类型是运行系统服务的位置,因此您为其选择的VM SKU必须考虑计划放置到群集中的总体峰值负载。这里有一个比喻来说明我的意思-将主要节点类型视为您的“肺部”,它是为大脑提供氧气的设备,因此,如果大脑没有得到足够的氧气,您的身体就会遭受痛苦。
节点类型的一个重要目的是将服务放置位置限制为特定的节点类型。例如,您可以有几种节点类型,一种使用具有较高cpu容量的VM,另一种则专注于内存量。您可以将内存资源短缺服务放在一种节点类型上,将CPU密集型服务放在另一种节点类型上。