【问题标题】:Is it possible to have a single frontend select between backends (defined dynamically)?是否可以在后端之间进行单个前端选择(动态定义)?
【发布时间】:2020-01-02 21:01:18
【问题描述】:

我目前正在考虑在我们的服务结构集群上部署 Traefik/Træfik。

基本上我有一个设置,其中我有任意数量的应用程序(服务),使用租户名称定义,并且这些服务中的每一个实际上都是一个单独的 Web UI。

我想弄清楚是否可以将单个前端配置为以后端为目标,这样我就不必在每次部署新的 UI 应用程序时都定义新的前端。类似的东西

[frontend.tenantui]
rule = "HostRegexp:localhost,{tenantName:[a-z]+}.example.com"
backend = "fabric:/WebApp/{tenantName}"

这个想法是让我可以部署新的 UI 服务而不更新前端配置。

我目前正在为我的后端服务使用 Service Fabric 提供程序,但如果需要,我愿意使用文件提供程序或其他东西。

更新: servicemanifset 包含标签,以便让 traefik 创建后端和前端。

标签是为一项服务定义的,我们以WebUI 为例。现在,当我部署 WebUI 的实例时,它会获得一个标签,并且 traefik 可以理解它。

然后我使用一组不同的参数部署另一个实例,它仍然是 WebUI 服务,它使用相同的清单,因此它获得相同的标签和相同的路由。但我真正想要的是让它有一个包含某种规则的标签,这样我就可以路由到服务实例的名称(在运行时而不是设计时确定)。具体来说,我希望运行时部分成为域名的一部分(因此建议使用 HostRegexp 样式规则)

【问题讨论】:

  • 我不确定我是否理解正确。您确实在服务清单中使用 Traefik 标签来配置路由吗?也许您可以在当前方法中添加更多细节。
  • 添加更新以澄清需求(希望它能澄清事情)

标签: azure-service-fabric traefik


【解决方案1】:

我认为不可能使用HostRegexp 中的匹配组来确定后端。

一种可能性是在创建服务实例后使用Property Manager API 动态设置服务实例的前端规则。此外,请参阅 this 以获取有关使用 API 的完整示例。

【讨论】:

    猜你喜欢
    • 2020-11-01
    • 2015-10-11
    • 2019-09-19
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多