Traefik ist eine moderne, dynamische und weit verbreitete Reverse-Proxy- und Load-Balancer-Software. Traefik kann sowohl als eigenständiger Prozess als auch als Teil von [[container|Container]]-Orchestrierungssystemen wie [[Docker]] Swarm oder [[Kubernetes]] eingesetzt werden.
=====Features=====
* Automatische Konfiguration: Traefik kann dynamisch Konfigurationen von Backend-Diensten entdecken und aktualisieren, während neue Dienste hinzugefügt oder alte Dienste entfernt werden.
* Service Discovery: Traefik kann automatisch Dienste entdecken, die in verschiedenen Umgebungen bereitgestellt werden, z.B. in Container-Orchestrierungssystemen wie Docker Swarm oder Kubernetes.
* Load Balancing: Traefik kann den eingehenden Traffic auf mehrere Instanzen eines Dienstes verteilen, um die Last auf die Backend-Server zu verteilen und eine bessere Performance zu gewährleisten.
* SSL/TLS-Terminierung: Traefik kann SSL/TLS-Verschlüsselung für den eingehenden Traffic entschlüsseln und die Anfragen dann an die entsprechenden unverschlüsselten Backend-Server weiterleiten.
* Routing und Middleware: Traefik unterstützt verschiedene Routing-Regeln und Middleware-Optionen, mit denen Entwickler den Traffic basierend auf URL-Pfaden, Hostnamen oder anderen Kriterien steuern können.
* Dynamische Konfiguration: Traefik erlaubt es, Konfigurationen über REST-Endpunkte oder Konfigurationsdateien zu ändern, ohne den Proxy neu starten zu müssen.
=====Docker=====
See [[https://hub.docker.com/_/traefik|Docker Hub]]
Erstelle eine traefik.yml
## traefik.yml
# Docker configuration backend
providers:
docker:
defaultRule: "Host(`{{ trimPrefix `/` .Name }}.zarat.ml`)"
# API and dashboard configuration
api:
insecure: true
docker run -d -p 8080:8080 -p 80:80 \
-v $PWD/traefik.yml:/etc/traefik/traefik.yml \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik:v2.11
=====Installation=====
**Schritt 1: Installation von Traefik**
1. Installiere die Traefik-Binärdatei auf deinem Server. Du kannst dies entweder über den Download von der offiziellen Webseite oder durch Verwendung von Paketmanagern wie `apt`, `yum` oder `brew` tun, je nachdem, welches Betriebssystem du verwendest.
**Schritt 2: Erstellen der Konfigurationsdatei**
1. Erstelle eine Konfigurationsdatei für Traefik. Hier ist ein einfaches Beispiel:
# traefik.yml
global:
checkNewVersion: true
api:
dashboard: true
entryPoints:
web:
address: ":80"
providers:
file:
filename: traefik_dynamic.toml
watch: true
log:
level: INFO
**Schritt 3: Konfiguration von Diensten und Routen**
1. Erstelle eine weitere Konfigurationsdatei (z.B. `traefik_dynamic.toml`) für die Konfiguration von Diensten und Routen:
# traefik_dynamic.toml
[http.routers]
[http.routers.my-service]
rule = "Host(`example.com`)"
service = "my-service"
[http.services]
[http.services.my-service.loadBalancer]
[[http.services.my-service.loadBalancer.servers]]
url = "http://backend-server:port"
In diesem Beispiel wird der eingehende Traffic basierend auf dem Hostnamen "example.com" auf den Dienst "my-service" geroutet, der zu einem Backend-Server weitergeleitet wird.
**Schritt 4: Starten von Traefik**
Führe den Traefik-Befehl aus, um Traefik mit der erstellten Konfigurationsdatei zu starten:
traefik --configFile=traefik.yml
**Schritt 5: Überwachung des Dashboards**
Traefik bietet ein Dashboard, auf dem du den Status der konfigurierten Dienste überwachen kannst. Du kannst auf das Dashboard über die angegebene Adresse zugreifen, z.B. `http://localhost:8080`.
=====Links=====
* [[https://traefik.io/traefik/|Homepage]]
* [[https://www.youtube.com/watch?v=wLrmmh1eI94|Traefik - Christian Lempa]]
* [[https://www.youtube.com/watch?v=PzbdEZ4DQTg|Expose Your Docker Containers With Traefik]]