Azure service fabric 连接到本地服务结构群集

Azure service fabric 连接到本地服务结构群集,azure-service-fabric,service-fabric-on-premises,Azure Service Fabric,Service Fabric On Premises,我按照以下步骤创建了一个多节点本地服务结构集群。我已经在集群中部署了一个无状态的应用程序,它似乎工作得很好。当我连接到集群时,我使用了其中一个节点的IP地址。这样,我就可以通过Powershell使用连接ServiceFabricCluster nodename:19000进行连接,并且可以连接到Service Fabric Explorer网站() 网上的例子表明,如果我在Azure中托管,我可以连接并解决问题,但我无法计算出本地服务器上的等效服务器是什么。我尝试连接到我的示例群集:conne

我按照以下步骤创建了一个多节点本地服务结构集群。我已经在集群中部署了一个无状态的应用程序,它似乎工作得很好。当我连接到集群时,我使用了其中一个节点的IP地址。这样,我就可以通过Powershell使用
连接ServiceFabricCluster nodename:19000进行连接,并且可以连接到Service Fabric Explorer网站()

网上的例子表明,如果我在Azure中托管,我可以连接并解决问题,但我无法计算出本地服务器上的等效服务器是什么。我尝试连接到我的示例群集:
connectservicefriccluster sampleCluster.domain.local:19000
,但返回:

警告:联系命名服务失败。正在尝试联系故障转移管理器服务。。。 警告:未能联系故障转移管理器服务,正在尝试联系FMM。。。 错误的 警告:没有已知的此类主机

Connect ServiceFabricCluster:无法访问群集终结点,请检查是否存在连接/防火墙/DNS问题


我的设置中是否缺少某些内容?是否应该有一个中央DNS条目允许我连接到集群?或者我正在尝试做一些本地不支持的事情?

是的,您缺少负载平衡器

这是我能找到的最好的帮助资源,我将粘贴相关内容,以防不可用

反向代理 — 提供服务结构群集时,可以选择在群集上的每个节点上安装反向代理。它代表客户端执行服务解析,并将请求转发到包含应用程序的正确节点。在大多数情况下,在服务结构上运行的服务仅在节点子集上运行。由于负载平衡器不知道哪些节点包含请求的服务,因此客户端库必须将请求包装在重试循环中以解析服务端点。使用反向代理将解决这个问题,因为它在每个节点上运行,并且将准确地知道服务在哪个节点上运行。集群外的客户端可以通过反向代理访问集群内运行的服务,而无需任何额外配置

资料来源:

我有一个Azure服务结构资源正在运行,但同样的规则也适用。正如本文所述,您将需要一个反向代理/负载平衡器来解决哪些节点正在运行该API,还需要平衡运行该API的节点之间的负载。因此,运行状况探测也是必要的,以便负载平衡器知道哪些节点是向其发送流量的可行选项

例如,Azure立即创建了两条规则: 1.TCP/19080上的LBHttpRule,端口19080上的TCP探测器每5秒一次,错误阈值为2计数。 2.TCP/19000上的LBRule,端口19000上的TCP探测器每5秒一次,错误阈值为2计数

您需要添加一条规则,将端口80转发到您的服务http端口,使之成为面向前的。然后,运行状况探测可以是一个http探测,它命中一个路径来测试返回

一旦进入集群,您就可以正常解析服务,SF将负责可用性

在Azure land中,这又被抽象为使用API管理之类的东西来进一步将其反向代理到SSL。真是乱七八糟,但它能起作用


一旦您的负载平衡器设置好,您就可以使用一个IP进行管理、发布和常规通信。

谢谢@mike。我已经让反向代理工作了。我的无状态服务在多个节点上运行,我可以连接到http://{nodename}:19081/stateless/Statless1,它将我重定向到一个正在运行的节点。但我仍然无法输入一个节点名。如何将sampleCluster.domain.local注册为入口点?这就是负载平衡器的用武之地。如果节点启动,它将(在大多数情况下与默认情况一样)向每个节点发送循环请求。这就是我提到的那些健康探测器的作用,负载平衡器将在向其发送流量之前点击健康探测器以确保节点健康。我不确定这是否有用,但我从微软那里发现了一个问题:ServiceFabric是否有负载平衡器,或者我是否需要它外部的东西?我看不到我可以在服务结构内部安装负载平衡器的地方。它是外部的。这里有更多关于这个问题的文档:谢谢@Mike。我也做过类似的设置。外部负载均衡器位于ngnix中,它和SF节点的反向代理端口通信。当每个节点都有一个无状态服务时,设置就会起作用。当我在一个节点中创建同一服务的多个实例时,请求不会到达结构。