【问题标题】:How does azure load balancer support dynamic ports for service fabric cluster?Azure 负载均衡器如何支持 Service Fabric 集群的动态端口?
【发布时间】:2017-07-23 00:28:40
【问题描述】:

在 ServiceManifest.xml 文件中服务的端点配置中,Visual Studio 通常会创建以下信息:

<Resources>
 <Endpoints>
  <Endpoint Protocol="http" Name="ServiceEndpointHttp" Type="Input" Port="8304" />
 </Endpoints>
</Resources>

如果我删除端口属性及其值(如下所示),

<Resources>
 <Endpoints>
  <Endpoint Protocol="http" Name="ServiceEndpointHttp" Type="Input" />
 </Endpoints>
</Resources>

服务结构运行时将为该服务分配一个动态端口。

由于所有端口都被相关的负载均衡器自动阻塞,我该如何配置负载均衡器才能从外部访问服务?

【问题讨论】:

    标签: azure azure-service-fabric


    【解决方案1】:

    您可以为每项服务更新 Azure 负载均衡器,但由于端口是动态的,这不是一个好主意。

    最好使用反向代理,例如为此内置的reverse proxy。它将接收所有传入调用(在固定端口上,如 80)并将它们转发到集群内的 HTTP 端点。

    因为端点是在命名服务内部注册的,所以内置的反向代理可以找到它们。

    您也可以自己构建代理并使用FabricClient.QueryManager 来解析服务端点。

    【讨论】:

    • 所以简短的回答是天蓝色负载均衡器没有办法为服务结构集群启用动态端口。谢谢。
    【解决方案2】:

    根据微软的说法,内置的反向代理并不安全。它暴露了所有端点,甚至系统服务。他们的文档中有一个警告。 https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reverseproxy

    我们一直在开发 .Net Core 无状态服务作为来宾可执行文件,我们现在面临的问题是安全性。微软顾问建议不要使用内置的反向代理。我们现在正在编写自己的代理,它将只公开我们想要公开的端点。

    我们编写了一个 ARM 模板,为 Azure 应用程序网关提供公共 IP 和 Azure Service Fabric 集群。我们为每个 Web API 配置一个 Azure 流量管理器配置文件。来电从 TM 路由到 APP 网关,然后通过负载均衡器路由到 VM Scale Set。

    【讨论】:

      猜你喜欢
      • 2021-06-22
      • 2017-08-13
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多