Я пытаюсь установить два стека docker-compose для кластера роя: один для traefik, другой для httpd.
он работает нормально, за исключением того, что я получил один бэкэнд с именем http, с моими 4 репликами. но я получаю 4 интерфейса, каждый с тем же правилом маршрута.
вот мои файлы docker-compose
version: '3.7'
networks:
default:
external: true
name: common
services:
httpd:
image: httpd:2.4 # A container that exposes an API to show its IP address
labels:
traefik.frontend.rule: "Host:httpd.docker.localhost"
traefik.enable: "true"
traefik.backend: "http"
deploy:
replicas: 4
networks:
- default
и
version: '3.7'
networks:
common:
name: common
driver: overlay
attachable: true
services:
reverse-proxy:
image: traefik # The official Traefik docker image
command: --api --docker # Enables the web UI and tells Traefik to listen to docker
ports:
- "80:80" # The HTTP port
- "8080:8080" # The Web UI (enabled by --api)
volumes:
- /var/run/docker.sock:/var/run/docker.sock #
- ./traefik.toml:/etc/traefik/traefik.toml #
networks:
- common
вот мой трафик.томл
debug = true
################################################################
# API and dashboard configuration
################################################################
[api]
#defaultEntryPoints = ["http", "https", "ws", "wss"]
################################################################
# Web configuration backend
################################################################
[web]
address = ":8080"
[web.auth.basic]
# User: toto | Password: password
users = ["toto:$2y$05$zNs3wc5UPB4su8vbFugVPuKEaLJXMf5Z.9hAI1ulJpBbhbBprfppO"]
################################################################
# Entry-points configuration
################################################################
#[entryPoints]
# [entryPoints.http]
# address = ":80"
# [entryPoints.http.redirect]
# entryPoint = "https"
# [entryPoints.https]
# address = ":443"
# [entryPoints.https.tls]
################################################################
# Docker configuration backend
################################################################
[docker]
domain = "docker.local"
watch = true
#exposedbydefault = false
вот что я получаю
4Frontends
frontend-Host-httpd-docker-localhost-0
Route Rule
Host:httpd.docker.localhost
Entry Points
http
Backend
backend-http
frontend-Host-httpd-docker-localhost-1
Route Rule
Host:httpd.docker.localhost
Entry Points
http
Backend
backend-http
frontend-Host-httpd-docker-localhost-2
Route Rule
Host:httpd.docker.localhost
Entry Points
http
Backend
backend-http
frontend-Host-httpd-docker-localhost-3
Route Rule
Host:httpd.docker.localhost
Entry Points
http
Backend
backend-http
ожидайте: получить только один интерфейс, с тем же правилом маршрутизации только к одному бэкэнду (так как я получаю только один бэкэнд, что хорошо для меня)
получил: четыре интерфейса, с тем же правилом маршрута, только к одному бэкэнду (так как я получаю только один бэкэнд, что хорошо для меня)