Azure Service Fabric 中的主节点和非主节点有什么区别?
What's the difference between primary and non-primary nodes in Azure Service Fabric?
我找不到任何具体的文档来说明主节点和非主节点之间的区别是什么,以及它们是如何使用的。有人可以阐明它吗?谢谢。
差别不大。不同节点类型的节点都具有 Service Fabric 集群的相同特征。他们都参与负载均衡等。
除了一件事:系统服务 运行 仅来自主节点类型的节点 (source):
Primary node type is where the system services run, so the VM SKU you choose for it, must take into account the overall peak load you plan to place into the cluster. Here is an analogy to illustrate what I mean here - Think of the primary node type as your "Lungs", it is what provides oxygen to your brain, and so if the brain does not get enough oxygen, your body suffers.
节点类型的一个重要目的是将服务放置限制为特定节点类型。例如,您可以有多种节点类型,一种使用具有更高 cpu 容量的 VM,另一种则侧重于内存量。您可以在一种节点类型上放置需要大量内存资源的服务,而在另一种节点类型上放置 cpu 密集型服务。
在这些情况下,拥有多种节点类型会很有用:
您希望 运行 向互联网公开的服务和不公开的服务。第一组将 运行 在连接到负载均衡器的节点类型 (VMSS) 上,第二组在不是的规模集上。
您需要 运行 在高级硬件上为某些客户提供服务,并在便宜的硬件上试用。第一组将 运行 在具有大量 CPU、大量 RAM 的节点上。第二个在较低的 SKU 上。
您想要构建一个超过一个 VMSS 可以容纳的最大节点数的集群。
或者您需要动态添加规模集,以支持巨大的增长。
并且:主节点 运行 您的系统服务,辅助节点不。
如果将 Service Fabric 与 Kubernetes 等其他编排工具进行比较,您会发现集群的定义方式存在细微差别。
Kubernetes 使用 Master 的概念来托管集群管理服务,并使用 Minion 来托管您的应用程序服务(容器)。在 1.1 版之前,运行 容器是不可能在 master 上的,因为它认为 Master 应该被隔离以避免与容器 运行ning 发生冲突,例如消耗太多内存、磁盘、cpu 等。
在 Service Fabric 上,这有点不同。当您定义 NodeType as Primary 时,它在集群内部的意思是此 NodeType 将负责托管 Service Fabric 管理服务(控制集群健康、编排所需的服务)等等)。
当您通过 Azure 门户部署集群时,根据您选择的耐用层(青铜、白银、黄金),主节点类型需要一定数量的节点,以保持集群管理健康。对于生产工作负载,5 个节点是 Primary NodeType 或具有有状态工作负载的 NonPrimary 的最小推荐大小。支持的最低使用 VM SKU 是标准 D1 或标准 D1_V2.
主节点类型有一个问题,不支持更改 VMSS Sku(大小),您可以自行承担风险,但这是灾难的根源,因为失去管理服务的风险是太高。
Non-primary NodeType,除了上面提到的这些,整体上没有区别。所有 NodeType 都有一个 VMSS 和一个能够配置访问规则的 LoadBalancer(带有域)。所有 NodeType 都将有 100 个节点的限制。
与 Kubernetes 相比,SF 没有添加任何限制来阻止您将服务与主节点上的管理服务一起部署,每个节点都是资源池(包括主节点)的一部分。因此,默认行为是在每个可用节点上部署应用程序,无论 NodeType 是什么。
当您规划更大的集群(100+ 个节点)时,考虑到这一点很重要,将您的主节点类型与您的工作负载隔离开来,并消除管理服务节点的压力。
我找不到任何具体的文档来说明主节点和非主节点之间的区别是什么,以及它们是如何使用的。有人可以阐明它吗?谢谢。
差别不大。不同节点类型的节点都具有 Service Fabric 集群的相同特征。他们都参与负载均衡等。 除了一件事:系统服务 运行 仅来自主节点类型的节点 (source):
Primary node type is where the system services run, so the VM SKU you choose for it, must take into account the overall peak load you plan to place into the cluster. Here is an analogy to illustrate what I mean here - Think of the primary node type as your "Lungs", it is what provides oxygen to your brain, and so if the brain does not get enough oxygen, your body suffers.
节点类型的一个重要目的是将服务放置限制为特定节点类型。例如,您可以有多种节点类型,一种使用具有更高 cpu 容量的 VM,另一种则侧重于内存量。您可以在一种节点类型上放置需要大量内存资源的服务,而在另一种节点类型上放置 cpu 密集型服务。
在这些情况下,拥有多种节点类型会很有用:
您希望 运行 向互联网公开的服务和不公开的服务。第一组将 运行 在连接到负载均衡器的节点类型 (VMSS) 上,第二组在不是的规模集上。
您需要 运行 在高级硬件上为某些客户提供服务,并在便宜的硬件上试用。第一组将 运行 在具有大量 CPU、大量 RAM 的节点上。第二个在较低的 SKU 上。
您想要构建一个超过一个 VMSS 可以容纳的最大节点数的集群。 或者您需要动态添加规模集,以支持巨大的增长。
并且:主节点 运行 您的系统服务,辅助节点不。
如果将 Service Fabric 与 Kubernetes 等其他编排工具进行比较,您会发现集群的定义方式存在细微差别。
Kubernetes 使用 Master 的概念来托管集群管理服务,并使用 Minion 来托管您的应用程序服务(容器)。在 1.1 版之前,运行 容器是不可能在 master 上的,因为它认为 Master 应该被隔离以避免与容器 运行ning 发生冲突,例如消耗太多内存、磁盘、cpu 等。
在 Service Fabric 上,这有点不同。当您定义 NodeType as Primary 时,它在集群内部的意思是此 NodeType 将负责托管 Service Fabric 管理服务(控制集群健康、编排所需的服务)等等)。
当您通过 Azure 门户部署集群时,根据您选择的耐用层(青铜、白银、黄金),主节点类型需要一定数量的节点,以保持集群管理健康。对于生产工作负载,5 个节点是 Primary NodeType 或具有有状态工作负载的 NonPrimary 的最小推荐大小。支持的最低使用 VM SKU 是标准 D1 或标准 D1_V2.
主节点类型有一个问题,不支持更改 VMSS Sku(大小),您可以自行承担风险,但这是灾难的根源,因为失去管理服务的风险是太高。
Non-primary NodeType,除了上面提到的这些,整体上没有区别。所有 NodeType 都有一个 VMSS 和一个能够配置访问规则的 LoadBalancer(带有域)。所有 NodeType 都将有 100 个节点的限制。
与 Kubernetes 相比,SF 没有添加任何限制来阻止您将服务与主节点上的管理服务一起部署,每个节点都是资源池(包括主节点)的一部分。因此,默认行为是在每个可用节点上部署应用程序,无论 NodeType 是什么。
当您规划更大的集群(100+ 个节点)时,考虑到这一点很重要,将您的主节点类型与您的工作负载隔离开来,并消除管理服务节点的压力。