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

Docker 使用约束在一台计算机上运行traefik的多个实例,docker,docker-compose,devops,traefik,Docker,Docker Compose,Devops,Traefik,我正在尝试使用docker和traefik作为负载平衡器来进行简单的蓝/绿部署设置,我希望能够同时启动traefik的多个实例。据我所知,我必须设置以下约束: --providers.docker.constraints=Label(`key`,`value`) 但我不知道我必须给我的服务贴上什么标签,这样traefik就不会忽视它们。文档在这方面非常模糊,谷歌也没有太多帮助为了实现您需要的功能,您可以使用任何标签(除了现有的Traefik配置标签,如Traefik.http.routers)。

我正在尝试使用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"

我使用了这种方法,通过环境变量提供了
自定义值
,该变量允许我使用Traefik proxying only服务运行多个docker compose实例,这些服务来自相应的docker compose集群