Redundanz Failover mit Traefik
Was ist Traefik?
Traefik ist ein moderner, quelloffener Reverse Proxy und Lastverteiler für microservice-orientierte Architekturen. Er unterstützt mehrere Backends wie Docker und Kubernetes, bietet automatische Diensterkennung, SSL/TLS-Verschlüsselung und einfache Verwaltung über ein Dashboard oder eine API.
Es gibt mehrere Möglichkeiten Traefik zu konfigurieren, da verschiedene "Provider" für eine Konfiguration genutzt werden können, z.B. Dateien und Docker.
Im Folgenden wird zunächst die Konfiguration von Traefik mit Dateien behandelt, da diese Art der Konfiguration universal einsetzbar ist. Später wird mit einem Beispiel gezeigt, wie Traefik in Docker Compose konfiguriert werden kann.
Konfiguration von Failover mit Dateien
Die Allgemeine Konfiguration von Traefik für die Verwendung von Konfigurationsdateien könnte so aussehen. In diesem Beispiel werden alle Konfigurationsdateien im Ordner /etc/traefik/traefik_configs
verwendet, um Traefik zu konfigurieren.
api:
dashboard: true
insecure: true
ping: {}
providers:
file:
# Legt fest, in welchem Verzeichnis die Konfigurationsdateien liegen.
directory: /etc/traefik/traefik_configs
entryPoints:
web:
address: ":80"
Eine Konfigurationsdatei des Failovers für ein OPC Router Redundanzpaar könnte so aussehen. Diese Datei muss im Konfigurierten Verzeichnis für Konfigurationsdateien liegen.
http:
routers:
api-router:
# Reagiert auf den Präfix /api
rule: "PathPrefix(`/api`)"
# Sendet Anfragen an opcrouter-service
service: opcrouter-service
entryPoints:
- web
middlewares:
- api-rewrite
middlewares:
api-rewrite:
# Ersetzt /api/ durch /services/MyRestServer/api/
replacePathRegex:
regex: "^/api/(.*)"
replacement: "/services/MyRestServer/api/$1"
services:
opcrouter-service:
loadBalancer:
# Server des Redundanzpaares
servers:
- url: "http://opcrouter-primary:8080"
- url: "http://opcrouter-secondary:8080"
# Sendet Anfragen an den angegebenen Pfad, um die Verfügbarkeit zu testen
healthCheck:
path: "/health/runtime/ready"
interval: "5s"
timeout: "2s"