如何解决使用约束在一台机器上运行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 集群的服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。