docker - Traefik:将多个 docker 服务聚合到一个逻辑后端
问题描述
我正在使用其官方 docker -compose 文件运行 minio,该文件创建 4 个服务(容器):minio1、minio2、minio3、minio4。Traefik 将它们视为 4 个独特的服务,但实际上,它们应该被视为单个后端,即我希望 Traefik 为 minio 生成 1 个前端和 1 个后端(有 4 个服务器)。我尝试将它们放入一个组(servicefabric.groupname)但无济于事。我为每个 minio 服务设置了以下标签:
labels:
- "traefik.servicefabric.groupname=minio"
- "traefik.basic.frontend.rule=Host:foo.bar.com"
- "traefik.weight=10" # 10,20,30,40 incremented per service
- "traefik.frontend.rule=Host:traefik"
- "traefik.port=9000"
container_name: minio*
有什么办法可以做到这一点?
解决方案
@里弗曼
我和你有同样的问题,我通过玩耍解决了它,因为它没有在 Traefik 文档中完整记录。您需要做的是将traefik.backend
所有服务的值指定为相同的名称并设置traefik.frontend.backend
为该traefik.backend
值。您不能为此使用服务件。下面是一个例子。
services:
minio01:
image: minio/minio
hostname: minio01
restart: always
volumes:
- minio01-data:/export
networks:
- minio
- traefik
command: server http://minio01/export http://minio02/export
labels:
- 'traefik.enable=true'
- 'traefik.docker.network=traefik'
- 'traefik.frontend.rule=Host:minio.local'
- 'traefik.frontend.backend=minio'
- 'traefik.port=9000'
- 'traefik.protocol=http'
- 'traefik.backend=minio'
minio02:
image: minio/minio
hostname: minio02
restart: always
volumes:
- minio02-data:/export
networks:
- minio
- traefik
command: server http://minio01/export http://minio02/export
labels:
- 'traefik.enable=true'
- 'traefik.docker.network=traefik'
- 'traefik.frontend.rule=Host:minio.local'
- 'traefik.frontend.backend=minio'
- 'traefik.port=9000'
- 'traefik.protocol=http'
- 'traefik.backend=minio'
推荐阅读
- javascript - Jquery - 根据返回的 ajax 值从选择选项中选择突出显示
- node.js - nodejs mongoose,回调,比较旧数据并将新数据存储到变量
- meteor - 我可以在 Blaze 模板实例中使用 querySelector 方法吗
- laravel - vue 页面不渲染更改
- github - 在 Heroku 上使用 .gitignore
- android - 创建类 viewModel 的实例时出错
- mongodb - 您可以在 mongodb 中自动创建空间索引吗?
- python - Python - Tkinter 事件生成
- sharepoint-online - Sharepoint Online 中的工作流程
- javascript - jQuery中的Addclass函数不添加类