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