Service Fabric中的反向代理可以与多个Windows容器一起使用吗?

时间:2017-06-03 12:04:31

标签: azure-service-fabric

我正在评估使用SF或docker swarm进行容器编排,我可以看到服务结构具有优势,因为它能够使用在集群中的所有节点上运行的反向代理实现。问题是,我可以看到基于集群清单只有一个端口可以用作反向代理端口,因此我不完全理解如果你有多个windows容器运行,每个端口在自己的端口上运行,如何使用它。我只需要使用port:port mapping(没有HTTP重写),所以最终需要一对一的反向端口映射到每个运行的windows容器。 是否可以通过使用服务结构来实现?

要明确我将www.app1.com和www.app2.com托管在2个不同的容器中,它们不需要相互通信。我将这些部署到服务结构,如何使用反向代理和单个发布的外部端口从外部访问这些容器?

2 个答案:

答案 0 :(得分:0)

是的,您可以将反向代理与多个容器一起使用。这个想法很简单

  • 配置端口到主机映射,以便主机知道您的端口 应用正在倾听
  • 将容器配置为容器以便您的容器 容器使用服务结构注册一个端点。你可以选择 此端点的端口。这将在Naming注册 服务并可用于反向代理
  • 可以使用反向代理使用服务名称和您指定的端口来完成容器之间的通信。如果您没有指定端口号,那么service fabric将为您分配一个,您可以使用环境变量来获取它。

Service Fabric团队在此处提供了很好的文档 https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-deploy-container-linux

答案 1 :(得分:0)

此时(Service Fabric版本5.6),反向代理将使用Service Fabric命名服务执行服务解析,并提供URI以获取服务。反向代理将在您的服务上找到的URL特定于Service Fabric - 例如http://clusterFQDN/appName/serviceName:port

您可以使用DNS服务获取容器IP(群集中主机节点的IP,运行容器)。但是,您只能通过执行DNS SRV记录查找来查找端口。

在Service Fabric群集中公开容器的当前最佳选项是:

  1. 如果您的容器有固定的主机端口,Azure负载均衡器将能够监控容器所在的位置,并仅将请求转发给这些节点。您可以向Load Balancer添加其他公共IP,并为每个容器使用一个。不能与群集中的动态主机端口一起使用。
  2. Azure API管理可以通过与Service Fabric命名服务集成来解析Service Fabric服务。
  3. 创建您自己的HTTP网关作为可靠服务:https://github.com/weidazhao/Hostinghttps://github.com/c3-ls/ServiceFabric-Http
  4. 在群集中运行Nginx作为服务:基于此原型,您可以在Service Fabric中运行和配置Nginx:https://github.com/knom/ServiceFabric-Nginx