Traefik v2.5.4 mit Mesos

01. December 2021 Andreas Peters

Wir haben soeben die aktuelle Traefik Version 2.5.4 mit der Integration von Apache Mesos als inoffizielles Docker Image bereitgestellt.

Wie benutzt man das Docker Image?

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.4

Wie fügt man Mesos in die Traefik Konfiguration hinzu?

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>"

Wie werden Traefik routes und services in Mesos verwendet?

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.