微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用约束在一台机器上运行traefik的多个实例

如何解决使用约束在一台机器上运行traefik的多个实例

我正在尝试将docker和traefik用作简单的蓝色/绿色部署设置的负载平衡器,并且我希望能够同时启用traefik的多个实例。据我了解,我必须设置约束: --providers.docker.constraints=Label(`key`,`value`) 但是我无法弄清楚我必须在服务上加上什么标签,因此traefik不会忽略它们。文档对此非常含糊,谷歌也没有太大帮助

解决方法

为了实现您的需要,您可以使用任何标签(除了已经存在的 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。