【问题标题】:Use constraints to run multiple instances of traefik on one machine使用约束在一台机器上运行多个 traefik 实例
【发布时间】:2020-09-01 06:58:05
【问题描述】:

我正在尝试使用 docker 和 traefik 作为负载平衡器来进行简单的蓝/绿部署设置,并且我希望能够同时启动多个 traefik 实例。据我了解,我必须设置约束: --providers.docker.constraints=Label(`key`,`value`) 但我不知道我必须在我的服务上贴什么标签,所以 traefik 不会忽略它们。文档对此非常模糊,谷歌也没有太多帮助

【问题讨论】:

    标签: docker docker-compose devops traefik


    【解决方案1】:

    为了实现您的需要,您可以使用任何标签(除了已经存在的 Traefik 的配置标签,例如 traefik.http.routers)。主要思想是在 Traefik 配置中指定了标签和值,因此具有完全相同的标签/值对的服务将被允许由这个特定的 Traefik 实例管理。

    因此,基本示例可能是:

    services:
      traefik:
        image: traefik:v2.3
        command:
          - "--providers.docker=true"
          - "--providers.docker.exposedbydefault=false"
          - "--providers.docker.constraints=Label(`custom.label`,`custom-value`)"
        volumes:
          - "/var/run/docker.sock:/var/run/docker.sock:ro"
    
      custom_service:
        image: ...
        labels:
          - "traefik.enable=true"
          - "custom.label=custom-value"
    
    

    我将这种方法与通过环境变量提供的custom-value 一起使用,这允许我运行多个 docker-compose 实例,Traefik 仅代理来自其相应 docker-compose 集群的服务。

    Docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 2018-03-23
      • 1970-01-01
      相关资源
      最近更新 更多