代码之家  ›  专栏  ›  技术社区  ›  Mike Christensen

Traefik是否可以(也应该)在服务结构集群中以“文件”模式使用?

  •  0
  • Mike Christensen  · 技术社区  · 7 年前

    official according to the Github readme

    我很好奇使用Traefix服务结构提供程序(需要复杂的设置)是否有什么好处,而不是仅仅在与文件提供程序一起运行的容器中运行Traefix。如果你的服务 ServiceDnsName 属性,从而允许服务结构DNS找到它们,这看起来像 许多的 更简单的方法。Traefik配置类似于:

    [frontends]
      [frontends.api]
      backend = "api"
      passHostHeader = true
      [frontends.api.routes.forwarder]
      rule = "PathPrefixStrip: /api/"
    
      [frontends.someservice]
      backend = "someservice"
      passHostHeader = true
      [frontends.someservice.routes.forwarder]
      rule = "PathPrefixStrip: /SomeService/"
    
    
    [backends]
      [backends.api]
        [backends.api.servers.endpoint]
        url = "http://Api:11080"
      [backends.someservice]
        [backends.someservice.servers.endpoint]
        url = "http://SomeService:12080"
    

    您需要将端口80映射到您的Traefix服务,然后该服务将根据URL前缀将HTTP调用分派到适当的内部服务。

    • 不需要与服务Fabric API交谈,这有点 黑的
    • 可能更安全;一切都是内部的,不需要担心安装证书

    缺点:

    • 我认为除非所有服务都在一个容器中运行,否则这是行不通的(尽管我相信如果启用了reserve代理,就可以使用 http://localhost:19081/AppName/ServiceName (取而代之)

    有吗 戈查斯 我没有考虑,或者有任何有力的理由反对这样做?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Diego Mendes    7 年前

    是一种偏好 配置。

    如果您确信它几乎不会更改,那么不要受服务结构配置或文件的限制,Traefik可以从 REST ETCD , DynamoDB many other configuration providers 加载规则。

    • 重新启动容器以重新加载文件,或者。
    • 更好的方法是使用 file.watch 设置您不需要重新启动容器,它将监视文件中的任何更改。