Docker 使用约束在一台计算机上运行traefik的多个实例
我正在尝试使用docker和traefik作为负载平衡器来进行简单的蓝/绿部署设置,我希望能够同时启动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)。
--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集群