Wir haben soeben die aktuelle Traefik Version 2.5.6 mit der Integration von Apache Mesos als inoffizielles Docker Image bereitgestellt.
Die Nutzung unseres Traefik Docker Images ist relativ einfach. Der Unterschied zum Original liegt lediglich darin, dass hier das Verzeichnis in der die traefik.toml Datei liegt, als Volume übergeben wird. Dies hat zum Vorteil, dass (sofern ACME SSL Provider verwendet werden) ACME State Files ebenfalls persistent abgelegt werden.
docker run -p 80:80 -p 443:433 -p 9000:9000 -v <config_toml_directory>:/data:rw avhost/traefik_mesos:v2.5.6
Um Apache Mesos als Provider zu nutzen, muß die nachfolgende Konfiguration angepasst und übernommen werden.
[providers.mesos]
endpoint = "https://<your_mesos_master>"
principal = "<mesos_usernname>"
secret = "<mesos_password>"
Damit Traefik die Services kennt, zu denen entsprechende Routen erzeugt werden sollen, müssen diese in Form von Labels an den jeweiligen Mesos Tasks (oder Marathon Apps) hinzugefügt werden.
Zum Beispiel:
"traefik.enable": "true",
"traefik.http.routers.homepage-ssl.tls": "true",
"traefik.http.routers.homepage.entrypoints": "web",
"traefik.http.middlewares.homepage.redirectscheme.scheme": "https",
# The service object with the name "homepage-web" and "homepage-web-ssl" will be generated from the name of the Mesos Task (or Marathon) PortMapping object.
"traefik.http.routers.homepage-ssl.service": "homepage-web",
"traefik.http.routers.homepage.service": "homepage-web",
"traefik.http.routers.homepage.rule": "Host(`your.example.com`)",
"traefik.http.routers.homepage-ssl.rule": "Host(`your.example.com`)",
"traefik.http.routers.homepage-ssl.tls.certresolver": "sslcert",
"traefik.http.routers.homepage-ssl.entrypoints": "websecure"
Anschließend werden die Services und Router entsprechend in der Traefik Umgebung sichtbar.