- Traefik ist in Container-Umgebungen bekannt, kann aber als einzelne Go-Executable bereitgestellt werden und damit auch ohne Container-Engine als Reverse Proxy betrieben werden
- Im Vergleich zu nginx/caddy/apache2, die direkt Dateien ausliefern, ist es eher ein Proxy näher an HAProxy und fokussiert sich auf Request-Weiterleitung, Response-Rückgabe und Header-Anpassung
- Auch ohne Docker-Labels lässt es sich über den Configuration File Provider konfigurieren; statische und dynamische Konfiguration werden getrennt, um Router, Services und Middleware zu verwalten
- TLS Passthrough sowie Ein- und Ausgabe des PROXY Protocol von HAProxy werden unterstützt, allerdings muss auch der Zieldienst das PROXY Protocol unterstützen; apache2 und nginx tun das
- Für Authentifizierungsintegration sowie das Blockieren von User-Agents und IPs reichen die Bordmittel unter Umständen nicht aus; man sollte deshalb auch den Verwaltungsaufwand von ForwardAuth, oauth2-proxy und Drittanbieter-Plugins mit einbeziehen
Traefik auch außerhalb von Containern
- Traefik hat in den letzten Jahren im home-lab-YouTube-Umfeld an Popularität gewonnen und wird meist zusammen mit Container-Infrastruktur wie Docker oder Kubernetes vorgestellt
- Vom Funktionscharakter her ist es HAProxy näher als nginx/caddy/apache2
- Es leitet Requests an Services weiter und liefert Responses zurück
- Es kann Header und Teile von Requests und Responses verändern
- File Serving wird nicht unterstützt
- In Container-Umgebungen kann Traefik ebenfalls als Container laufen und per gemountetem Docker-Socket andere Container automatisch erkennen
- Das Proxy-Verhalten lässt sich über Docker-Labels der Container konfigurieren
- Erkennt es neue Container, kann es automatisch Let’s-Encrypt-TLS-Zertifikate anfordern und den Service veröffentlichen
Einzelne Binärdatei und Bereitstellung mit systemd
- Traefik ist in Go geschrieben und wird zu einer einzelnen Executable kompiliert
- Die Binärdistribution ist in der Traefik-Installationsdokumentation verfügbar
- Sowohl Traefik selbst als auch die Zieldienste lassen sich ohne Container-Engine ausführen
- Ein Beispiel für eine systemd-Service-Unit findet sich im Traefik-Repository
- Im praktischen Betrieb müssen zusätzlich zur Konfigurationsdatei ein eigener Benutzer angelegt und passende Dateiberechtigungen gesetzt werden
Konfiguration auf Basis von Konfigurationsdateien
- Ohne Container lassen sich keine Docker-Labels verwenden, aber Traefik kann über den File Provider konfiguriert werden
- Die Konfiguration ist grob in zwei Teile gegliedert
- Statische Konfiguration: enthält Zertifikatsanbieter wie Let’s Encrypt sowie die EntryPoints, also die Ports, auf denen Traefik lauscht
- Dynamische Konfiguration: enthält Router, Services und Middleware
- Traefik kann Dateisystemereignisse erkennen und die dynamische Konfiguration per Hot Reload neu laden
- Die Dokumentation bietet die zentralen Konzepte und Konfigurationsbeispiele passend zu jeder Methode
- Begriffe wie certificate provider, entrypoint, router, service und middleware lassen sich schnell in der Traefik-Dokumentation nachschlagen
Verhalten nach der Konfiguration und Debugging
- Wenn die Konfiguration nicht passt, zeigt Traefik Warnungen an
- Die Standard-Logs sind nicht übermäßig umfangreich, aber gut geeignet, um nachzuvollziehen, welchen Pfad ein Request nimmt
- Laut Praxiserfahrung war die Erstkonfiguration schnell abgeschlossen, und es traten keine zufälligen Probleme auf
TLS Passthrough und PROXY Protocol
- Traefik unterstützt TLS Passthrough
- Der Proxy terminiert TLS nicht, sondern leitet den Traffic an einen Webservice weiter, der eigene TLS-Zertifikate bereitstellt
- Auch eine Konfiguration ist möglich, bei der ein Service durch Traefik hindurch selbst Let’s-Encrypt-Zertifikate anfordert
- Der Proxy kann den weitergeleiteten Inhalt nicht einsehen
- Die übliche Auswahl eines Virtual Hosts erfolgt über den HTTP-
Host-Header, aber bei TLS Passthrough liegt dieser Header im verschlüsselten Inhalt und kann daher nicht verwendet werden - Stattdessen wird der Zielhost über das SNI (Server Name Indication) von TLS ausgewählt; Traefik sowie viele Webserver und Proxys nutzen dieses Verfahren
- Auch das PROXY Protocol von HAProxy wird für Ein- und Ausgabe unterstützt
- Damit lassen sich Informationen, die verloren gehen, weil der Benutzer zuerst den Proxy erreicht, an den Zieldienst weitergeben
- Es gilt als sicherheitstechnisch leichter handhabbar als klassische
X-Forwarded-...-Header - Der Zieldienst muss das PROXY Protocol ebenfalls unterstützen
- apache2 und nginx unterstützen es, und die Liste unterstützender Dienste wächst weiter
Offene Schwächen bei der Authentifizierungsintegration
- Unter nginx lässt sich mit Vouch Proxy eine Konfiguration umsetzen, die einige Dienste mit Azure AD, heute Microsoft Entra Authentication, schützt
- Traefik unterstützt mit ForwardAuth ein Verfahren ähnlich zur Authentifizierungsmethode von nginx
- Vouch Proxy funktioniert derzeit noch nicht mit Traefik; dazu gibt es ein offenes Issue
- Man könnte eine eigene Keycloak-Instanz betreiben und mit AAD integrieren, um sie für ForwardAuth zu nutzen, aber der Aufwand für Initialkonfiguration, Absicherung und Updates ist hoch
- traefik-forward-auth wird oft empfohlen, wurde aber zuletzt im Juni 2020 aktualisiert und benötigt Dependency-Updates, weshalb es als schwer nutzbar eingeschätzt wird
- Mit oauth2-proxy wurden in der Vergangenheit keine guten Erfahrungen gemacht; wenn hinter einem Proxy noch ein weiterer Proxy steht, müssen HTTP/2, HTTP/3, Timeouts, Body-Größen und WebSocket-Einstellungen in jedem Zwischenproxy abgestimmt werden, was die Fehleranfälligkeit erhöht
- Laut Update vom 2024-05-06 lässt sich oauth2-proxy auch über eine HTTP API integrieren
- Es unterstützt nginx auth_request
- Es unterstützt Traefik ForwardAuth
- Dieser Ansatz wirkt wie eine Option, die der gewünschten Konfiguration näherkommt
User-Agent- und IP-Blockierung
- Es kann Situationen geben, in denen interne Services nicht von archive.org archiviert werden sollen
- robots.txt und ähnliche Header sind zum Blockieren von Archive.org nicht wirksam; möglich sind das Sperren des User-Agents
archive.org_botoder das Sperren von IP-Bereichen - Um in Traefik User-Agents oder IP-Adressen zu blockieren, sind nicht Bordmittel, sondern Drittanbieter-Plugins erforderlich
- Plugin zum Blockieren von User-Agents
- deny-IP-Plugin
- Drittanbieter-Plugins müssen bei Updates berücksichtigt werden und können Sicherheitslücken schaffen, weshalb sie nicht bevorzugt werden
- Mit der Middleware IPAllowList ist es möglich, alle IPs außer den zu blockierenden zu erlauben
- Auch die Berechnung von IP-Bereichen ist möglich
- Das ist nicht unbedingt schlechter als direkte Blockierung, aber wenig elegant, weil sich anhand der verbleibenden Subnetze schwer erkennen lässt, welche Bereiche gesperrt wurden
Beispielhafter Aufbau der Konfiguration
- Das Beispiel ist in
/etc/traefik/traefik.ymlund/etc/traefik/dynamic.ymlaufgeteilt - Die statische Konfiguration richtet Folgendes ein
- EntryPoints
:80und:443 - Umleitung aller HTTP-Endpunkte ohne Ausnahme auf HTTPS
- Let’s-Encrypt-Zertifikatsausstellung per TLS Challenge
- Überwachung der dynamischen Konfigurationsdatei
/etc/traefik/dynamic.yml
- EntryPoints
- Die dynamische Konfiguration enthält Folgendes
- TCP-Routing mit TLS Passthrough für
cloud.xx.xyz - Weiterleitung an den Service
10.33.1.2:4433auf einem anderen Host - Aktiviertes PROXY Protocol Version 2
- Für
git.xx.xyzTLS-Terminierung und anschließendes Proxying auf das lokalehttp://127.0.0.1:3000 - Eine Middleware, die
https://xx.xyz/redirmeplsaufhttps://google.comumleitet - Eine Middleware, die den Header
X-Robots-Tag: noindex, nofollow, nosnippet, noarchivehinzufügt
- TCP-Routing mit TLS Passthrough für
1 Kommentare
Meinungen auf Hacker News
Traefik ist ziemlich gut, leidet aber unter demselben schrecklichen Problem wie Ansible: Es gibt viele Dokumente und Artikel, aber man findet nicht, was man wirklich braucht.
Ich nutze es seit v1 und verliere mich trotzdem oft in der Dokumentation, was enorm frustrierend ist. Für kleine Projekte nehme ich eher Caddy, weil dessen Dokumentation nicht so schlecht ist wie die von Traefik.
An technische Dokumentationsautoren gerichtet: beispielzentrierte Dokumentation ist nur für Anfänger gut, die sie überfliegen. Wer mit dem Produkt vertraut ist, braucht Referenzdokumentation und vollständige Listen, keine Feldbeschreibungen, die über zehn Tutorial-Seiten verstreut sind. Konzentriert euch nicht nur auf den Onboarding-Prozess, sondern richtet euch auch an Menschen, die das Produkt täglich nutzen.
Das ist der Punkt, der mich am meisten stört, und der Grund, warum ich Ansible so sehr hassen gelernt habe; bei Traefik ist es ähnlich, wenn auch weniger ausgeprägt.
Es wird angenommen, dass man sehr einfache Aufgaben nur mit sehr flachen Datenstrukturen erledigt, aber die Realität sieht meist anders aus. Um solche Sprachen richtig zu nutzen, muss man das ganze Set impliziter Regeln verstehen, wie YAML zu verwenden ist; die Dokumentation geht darauf aber kaum ein.
Es gibt zwar spezielle Konfigurationsdokumentation für jedes Modul, aber wie man Standardkonfigurationen verwendet, wie man zurückgegebene Daten behandelt oder sie mit etwas nur leicht Komplexerem kombiniert, ist selten klar. Es fühlt sich an, als würde man einem ein Dutzend Ein-Absatz-Beispiele pro Eintrag wie einen Haufen Zutaten hinwerfen und sagen: Back einen Kuchen.
Bei mehreren YAML-Interpreter-Systemen, die ich verwendet habe, war die Erfahrung fast immer dieselbe. Erst nach Hunderttausenden Zeilen YAML konnte ich die Arbeit erledigen, aber die Dokumentation war kaum mehr wert als eine Liste von Einstellungen.
Trotzdem habe ich mit
ansible-doceinen ziemlich brauchbaren Workflow gefunden; meine häufig genutzten Aliasse sindalias adl='ansible-doc --list',alias adls='ansible-doc --list | less -S',alias ad='ansible-doc'.Zuerst suche ich mit
adlsschnell nach dem passenden Befehl, schaue mir dann mitaddie Dokumentation an und springe fast immer direkt ans Ende (G), um die Beispiele anzusehen. Meist steht die gesuchte Antwort genau dort.Das Schreiben von Ansible-Skripten hängt sehr stark von der Dokumentation ab; deshalb sollte dieser Nachschlageprozess schon im Standardzustand besser unterstützt werden, mit einer Oberfläche, über die man schnell findet, was man braucht, ohne haufenweise Aliasse anzulegen.
Klar, es ist ihr Projekt, aber jedes Mal, wenn ich eine Methode eines Objekts nachschlagen will, muss ich mich durch lange Prosaseiten wühlen. Manchmal ist es einfacher, einfach den Source Code zu lesen.
Wir haben Traefik zwei Jahre lang in Produktion eingesetzt. Früher nutzten wir NGINX, sind aber wegen der automatischen Let's-Encrypt-Integration zu Traefik gewechselt – und ich bereue diese Entscheidung.
Die Traefik-Dokumentation spricht weder mich noch mein Team wirklich an. Sie ist umständlich, und Traefik verhält sich ohne brauchbare Logs merkwürdig.
Wenn man zum Beispiel versucht, Zertifikate neu zu erstellen, schlägt das sporadisch fehl und die Produktion ist dann unten, ohne dass klar ist, wann sie wiederhergestellt wird. Wir wechseln gerade zurück zu NGINX.
configuration.nixeinrichten; intern werdenlego(1)und Let's Encrypt verwendet.security.acme = { acceptTerms = true; defaults.email = "admin-email@provider.net"; certs."mydomain.example.com" = { domain = "*.mydomain.example.com"; dnsProvider = "cloudflare"; environmentFile = "/path/to/cloudflare/password"; }; };services.caddy.enable = true;services.caddy.virtualHosts."subdomain1.mydomain.example.com" = { extraConfig = '' reverse_proxy 127.0.0.1:1234 ''; useACMEHost = "mydomain.example.com"; };Mit nginx dürfte die Konfiguration ziemlich ähnlich sein. https://github.com/go-acme/lego
Es war derselbe Domain-Registrar, dieselbe API, dieselbe Docker-Konfiguration, und alle Logs waren aktiviert, aber es gab keinerlei Hinweis darauf, warum das Zertifikat nicht erstellt wurde. Es fiel einfach auf das generierte Standardzertifikat zurück, als hätte es es gar nicht erst versucht.
Nach zwei Troubleshooting-Sitzungen und stundenlanger Suche gab ich auf und musste eine selbstsignierte Zertifikatsdatei verwenden. Es ist wirklich frustrierend, wenn es keinerlei Informationen dazu gibt, warum etwas nicht funktioniert, und es nach einem stillen Fehlschlag einfach auf ein Fallback-Verhalten umschaltet.
Insgesamt war das für mich das größte Problem mit Traefik. Wenn es funktioniert, ist es großartig, aber wenn nicht, war es immer schwierig, das Problem zu beheben oder die nötigen Informationen in der Dokumentation zu finden. In der Firma wollen wir gegen Jahresende anfangen, Traefik in Produktion einzusetzen, daher hoffe ich, bis dahin mit Traefik vertrauter zu werden.
Das Beste daran ist, dass es keine Konfigurationssprache gibt. Man schreibt einfach Go.
Später habe ich gelernt, dass Let's Encrypt nach N fehlgeschlagenen Validierungsversuchen eine erneute TLS-01-Validierung für eine Weile ablehnt, wenn DNS nicht korrekt eingerichtet ist; dein Problem klingt nach etwas in dieser Richtung.
Nach dem Wechsel auf DNS-01-Validierung wurde die Erfahrung schlagartig deutlich besser. Man kann auch Zertifikate für Dienste erstellen, die nicht öffentlich exponiert sind, und es ist weit weniger Orchestrierung nötig als beim TLS-01-Ansatz.
Wenn der DNS-Anbieter ordentlich funktioniert, bekommt man bei Problemen wahrscheinlich schon einen API-Fehler, bevor Let's Encrypt den Record validiert, und der Fehler tritt viel früher auf als der Backoff nach fehlgeschlagenen Let's-Encrypt-Prüfungen. Inzwischen bin ich fast fest entschlossen, Let's Encrypt nur noch mit DNS-01-basierter Validierung zu nutzen, egal ob ich Traefik, Caddy, Nginx oder einen anderen Reverse Proxy verwende. Und wenn ich TLS-01 nutzen muss, werde ich unbedingt mit der Staging-API prüfen, ob von Anfang an alles korrekt eingerichtet ist.
Nebenbei: Wenn man in Traefik ein Let's-Encrypt-Staging-Zertifikat erstellt, gibt es keine gute Möglichkeit, dieses Zertifikat ungültig zu machen. Man muss das ACME-JSON bearbeiten, das Zertifikat entfernen und Traefik neu starten, damit die Änderung übernommen wird. Vielleicht geht es auch mit
SIGHUP, aber ausprobiert habe ich das nicht.Insgesamt gibt es viele seltsame stille Fehlschläge und Verhaltensweisen, aber der größte Schmerzpunkt ist, dass Fehler abhängiger Dienste undurchsichtig gemacht werden.
Ich nutze Caddy statt Traefik. Für mich ist ein Caddyfile viel einfacher zu verwalten als Traefiks YAML-Konfiguration, und ich pflege jeweils eigene Caddyfiles für lokale, Produktions- und On-Premises-Deployments.
Es gibt auch viele hervorragende Plugins, und wir nutzen das coraza-WAF-Plugin für Caddy, das gut funktioniert.
Es bietet alle Funktionen, die ich brauche, und ist dabei viel einfacher.
https://github.com/lucaslorentz/caddy-docker-proxy
Zum Beispiel, wie man lokalen Storage behandeln sollte, wenn man externen Storage verwendet. Es heißt zwar, man könne ihn als zustandslos betrachten, aber vielleicht stimmt das nicht.
Am Ende muss man beten, dass die Person, die das benötigte Modul gebaut hat, wirklich weiß, was sie tut. Denn auch dort gibt es keinen Dokumentationsstandard. Die Maintainer sollten bei zufälligen Modulen, die Kernfunktionen bereitstellen, aber null Dokumentation haben – etwa einem S3-Storage-Backend –, auf die Bremse treten.
Bei einem bescheidenen Bedarf von ein paar Docker-Hosts und ein paar Dutzend Containern frage ich mich, warum man Traefik statt nginx verwenden sollte. Ich nutze https://github.com/NginxProxyManager/nginx-proxy-manager – bringt Traefik in so kleinem Maßstab überhaupt Vorteile?
Ehrlich gesagt mag ich die nginx-Syntax nicht, und Traefik wirkte irgendwie glänzend. Wegen Let’s-Encrypt-Erneuerungen und Containern bin ich eingestiegen, wegen der Art der Konfiguration bin ich geblieben
Ich würde einen Umstieg wohl erst dann in Betracht ziehen, wenn ich eine Funktion brauche, die Traefik bietet und Nginx nicht hat
Dass automatisches Let’s Encrypt als Verkaufsargument dient, wirkt auch etwas seltsam, wo Certbot überall verfügbar ist und mehr Szenarien unterstützt. Die Verkaufsargumente von Traefik und Caddy kommen bei mir nicht richtig an, weil es nicht so ist, dass sie es nur einfacher machen als eine ohnehin breit unterstützte Alternative
Vor ein paar Wochen habe ich einen Reverse Proxy ausgewählt und mich am Ende wegen der Einfachheit für Caddy entschieden. Allerdings sind Traefiks automatische Container-Erkennung und die Referenzierung über Labels ziemlich gut, und für Caddy gibt es ein Plugin, das dasselbe macht
Ich habe den Artikel gelesen, bin aber noch nicht überzeugt, dass Traefik für mich Vorteile gegenüber Caddy hat. Für andere mag es welche geben, daher würde ich gern Meinungen hören
Bemerkenswert ist auch, dass Traefik standardmäßig in K3s konfiguriert ist. Dadurch ist K3s für mich zur schnellsten Methode geworden, einen K8s-Testcluster hochzuziehen, und man kann den Cluster wie Vieh behandeln
Man muss nur Deployments und die zugehörigen Services als NodePort hinzufügen, dann kann man auf die App zugreifen, ohne sich um den Ingress-Controller zu kümmern
Ich starte K3s-Cluster per Shell-Skript und teste bei Bedarf die App, die ich als Positionsargument angebe. Dabei nutze ich die temporäre Container Registry von ttl.sh. Wenn dasselbe Skript fertig ist, entfernt es auch den Cluster wieder
Ich überlege, meinen Reverse Proxy fürs Self-Hosting auf Traefik umzustellen. Anders als der Autor betreibe ich containerisierte Workloads mit Docker Compose und nutze derzeit Caddy zusammen mit dem hervorragenden caddy-docker-proxy-Plugin
Was ich aktuell bekomme, ist ein Reverse Proxy mit Docker-Label-basierter Konfiguration, automatische Erkennung neuer Workloads, TLS-Zertifikate und automatische DNS-Konfiguration über das caddy-dynamicdns-Plugin. Selbst wenn mein ISP mir eine andere IP gibt, muss ich mir kaum Sorgen machen, den Zugriff zu verlieren
Allerdings wird Caddy jedes Mal komplett neu gestartet, wenn ein neuer Workload hinzugefügt oder neu gestartet wird, wodurch der Zugriff kurzzeitig unterbrochen ist. Caddy kann bestehende Verbindungen nicht an die neue Instanz übergeben
Außerdem ist die Nutzung von Wildcard-Zertifikaten nicht einfach genug. Ich möchte nicht, dass alle Workloads über Certificate-Transparency-Logs der ganzen Welt offengelegt werden, also nutze ich Wildcard-Zertifikate; dann kann ich aber nicht die einfache Caddyfile-Syntax verwenden, bei der pro Hostname ein Zertifikat genutzt wird. Ich weiß, dass daran in Caddy gearbeitet wird, aber noch ist es so
Jedenfalls habe ich Traefik in k8s-Umgebungen genutzt und fand es ziemlich gut, also will ich es auch privat einmal ausprobieren. Ich hoffe, diese Aussage hält niemanden davon ab, Caddy auszuprobieren. Caddy ist tatsächlich wirklich gut
localtest.mezusammen mit Hostnamen zu verwendenEinen Test ist es wert. Beide sind in unterschiedlichen Bereichen hervorragend
Plugins sind eigentlich nicht nötig. Ich habe ein Ansible-Playbook, das all das auf einer VM einrichtet und sogar Templates für Compose-Dateien erzeugt, und ein weiteres Playbook, das auf dem Server alles außer Daten und Mounts entfernt. Für Backups nutze ich restic zusammen mit einem Custom-Skript, das Dateien, mehrere DBs usw. an mehrere Orte sichern kann
Früher habe ich k3s ausgerollt, aber für Self-Hosting war mir das zu viel und zu komplex. Ich will einfach schnell deployen und mich nicht selbst um Zertifikate kümmern müssen
Ich habe es gerade lokal überprüft, und es funktioniert einwandfrei
Ich habe Traefik viel genutzt, aber irgendwann hatte ich es satt, nur für einen Reverse Proxy mit docker-compose-Labels, Hierarchien und unzähligen Zeilen zu hantieren. Dann habe ich Caddy entdeckt und nie zurückgeschaut
Vermutlich war ich einfach nicht die Zielgruppe von Traefik. Was ich brauche, ist ein Reverse Proxy mit aktiviertem HTTPS oder vielleicht eine Basic-Auth-Schicht. In Caddy ist beides jeweils eine Zeile, sehr knapp, und es gibt keine Hierarchie, die ich bis heute nicht verstehe
Ich nutze Traefik seit Jahren für alles, was ich selbst hoste.
Die dynamische Erkennung und die Docker-Label-Funktion habe ich allerdings aufgegeben, weil sie zu heikel und das Debugging nervig war.
Stattdessen erzeuge ich mit einer Template-Engine statische Konfigurationsdateien. Fast alle Services sind eine Kombination aus Host/Target/Port, daher lassen sich die entsprechenden Abschnitte sehr leicht erstellen, und außer der TLS-Behandlung gibt es auch keine komplizierte Middleware. Es sieht so aus, als hätte der Autor des verlinkten Artikels denselben Weg gewählt.
Die Konfiguration wird per Ansible-Skript erzeugt, dann auf die Maschine kopiert, auf der Traefik läuft, und Traefik überwacht das Verzeichnis mit dieser Datei und lädt sie bei Änderungen automatisch neu. Das hat bisher sehr gut funktioniert.
Wir verwenden Traefik in Produktion zusammen mit Containern, und was mir am besten gefällt, ist, dass die Konfiguration als Container-Labels mitgeliefert wird. Dadurch muss man die Traefik-Konfiguration selbst kaum ändern.
Der größte Nachteil ist herauszufinden, wie man den Namen aussprechen soll. Offenbar spricht man ihn einfach wie normales „traffic“ aus, aber ich ertappe mich ständig dabei, ihn eher wie „trey-feek“ sagen zu wollen.
Die Kombination aus Traefik und Docker Compose ist meiner Ansicht nach ein guter Sweet Spot für kleines Self-Hosting, bevor es groß genug für k8s wird, besonders wenn man weniger Server hat, als eine hochverfügbare k8s-Control-Plane allein schon verbrauchen würde.
Die Menge an Stirnrunzeln und Gelächter, die ich von Kollegen bekommen habe, war enorm, und sie hat Einführung und Nutzung des Produkts behindert.
Wir haben es „tray-feek“ genannt, und das war noch okay, aber als wir mit dem offiziellen Support telefonierten, hieß es, man spreche es genauso aus wie normales „traffic“. Dadurch entstehen jedes Mal, wenn man über diesen Proxy spricht, Sätze wie: „Wir nehmen traffic über den öffentlichen Load Balancer an, und das native Load Balancing von traffic schickt traffic an die Pods von traffic.“ Das klingt dumm, und es ist tatsächlich dumm.
Andernfalls ließen sich coole Dinge wie Wartungsseiten oder das Hochfahren eines Containers beim ersten Request nach Inaktivität leichter umsetzen.
Deshalb denke ich darüber nach, ein Plugin zu schreiben, das weiß, wo die Compose-Dateien liegen, und sie direkt von dort lesen kann.
aekommtyoderhiam nächsten. Daher wäre meine Vermutung Tryfik, andernfalls Trayfik. Mit europäischemfikkönnte es auch feek sein.