traefik 对单个容器启多个实例会自动负载均衡。注意docker-ompose 需要修改。在第一章节中的docker-compose 继续修改。
有以下几个注意点
- 不要命名 container_name 让docker-compose 自动生成,否则启动会名字冲突。
- 端口号开放一定范围,避免端口号冲突
启动命令 app1 启动两个实例app1:#container_name: app1image: app1:v1ports:# The Web UI (enabled by --api.insecure=true)- "10183-10185:3000"expose:- "10183-10185"networks:- mynetlabels:- "traefik.http.routers.app1.rule=PathPrefix(`/app1`)"
测试docker-compose up -d --force-recreate --scale app1=2 app1

traefik 可以看到该endpoint 有两个service
postman 测试
可以看到请求被轮询分配到两个服务上注意
如下为一种错误的配置示范。这样达不到负载均衡的效果。traefik 会将请求全部转发到其中的一个服务上。
