Bitte lies Dir den Disclaimer durch, bevor Du eine Anleitung umsetzt...

Haftungsausschluss / Disclaimer

traefik v2.1 Label Syntax

Da ich nirgends eine „vernünftige“ Stelle gefunden habe, die Label Syntax auszuschreiben, verfrachte ich sie hier in diesen extra Artikel…

In allen docker-compose-Dateien konfigurieren wir Traefik mit Hilfe von „Labeln“. In jeder Zeile haben wir dazu ein Kommando, das einen bestimmten Aspekt von Traefik beeinflusst.

Genau diese Label-Syntax wurde aber von v1 auf v2 massiv und grundlegend überarbeitet. „In sich“ ist sie jetzt logisch und passend aufgebaut, wenn man das Konzept dahinter im Kopf behält. Dazu hier die Syntax:

– „traefik.http.routers.traefik.entrypoints=http“

– „traefik.http.<routers>/<middlewares>.<name>.<option>=<wert>“

Alle einzelnen Instruktionen werden mit „Punkten“ voneinander getrennt. Bis auf den Wert, dort ist es ein „Ist-Gleich Zeichen“.

1. Stelle: traefik – ALLE Anweisungen beginnen mit „traefik“.

2. Stelle: http / tcp – Neu in Traefik v2 ist, dass er nicht nur „http“, sondern generell auch mit „tcp“ umgehen kann. Wir verwenden aber ausschließlich „http“ und daher haben wir keine Verwendung für die „tcp“ Label…

3. Stelle: routers / middlewares – Ebenfalls neu in Traefik v2. Die Unterscheidung in „routers“ und „middlewares“. Ein Router weist Traefik an, eine Datenübertragung über bestimmte Optionen und Werte vorzunehmen. Eine Middleware hingegen beeinflusst einen Router und schaltet zusätzliche Optionen oder Regeln für ihn frei.

4. Stelle: name – Egal ob Router oder Middleware: Wir müssen dem Baby einen Namen geben. Und der Name muss global eindeutig sein, darf also für jeden Container nur einmal verwendet werden. So dürfen wir nicht einfach in jedem unserer WordPress Container den Namen „wordpress“ verwenden, sondern müssen für jeden Container einen eindeutigen Namen wählen.

Innerhalb eines Containers brauchen wir dann zu jedem möglichen Entrypoint noch einen eigenen, unterschiedlichen Namen pro Router. Ich habe mir hier angewöhnt, einmal „name“ und „name-sec“ für http und https zu schreiben. Das ist eine recht eigenwillige Syntax. An der Stelle bin ich auch ziemlich oft über die Config gestolpert. Aber das hilft nichts… Wenn wir hier ein wenig die „Augen auf“ machen, dann klappt das auch.

5. Stelle: option – Hier definieren wir eine Option, die für den Router gelten soll. Diese Optionsnamen sind von traefik vorgegeben und steuern jeweils eine bestimmte Funktion des Programms.

6. Stelle: wert – Getrennt mit einem „=“-Zeichen und keinem Punkt folgt nun der Wert, den wir der Funktion / Option zuweisen.

Besonderheiten

rule=Host(`domain`)

Das ist so mistig: Die Werte von „Host“ stehen NICHT in Hochkomma, sondern zwischen Apostrophen!
Die sind saublöd zu tippen (über Shift+´) und müssen mit einem zusätzlichen Leerzeichen ausgelöst werden, da bei dem Druck auf die Apostrophen-Taste erst mal gar nichts passiert. Vorsicht an der Stelle, das hat mich einige Büschel Haare gekostet…

Fazit

Bis auf ein paar Ungereimtheiten, die aber im großen Kontext wieder Sinn machen, ist die neue Label Syntax von Traefik v2 eigentlich wirklich logisch und sinnvoll aufgebaut. Die Entwickler haben Wort gehalten und auch, wenn alle Anleitungen damit umgeschrieben werden müssen, hoffe ich doch, dass diese Schreibweise jetzt und für die kommenden Versionen von Traefik beibehalten wird. Nur das mit dem Apostrophen… Wieso, Mr. Anderson, wieso, wieso wieso?!!

Anzeige *

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Verwendung
von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.

Scroll to Top