Load Balancing auf STACKIT
Load Balancer verteilen eingehenden Netzwerkverkehr auf mehrere Server, um Verfügbarkeit und Zuverlässigkeit zu erhöhen.
Warum Load Balancing?
Load Balancing bietet mehrere Vorteile:
- Hohe Verfügbarkeit: Automatisches Failover bei Serverausfällen
- Skalierbarkeit: Einfaches Hinzufügen weiterer Server
- Performance: Optimale Verteilung der Last
Load Balancing Algorithmen
graph TD
A[Client Request] --> B{Load Balancer}
B -->|Round Robin| C[Server 1]
B -->|Least Connections| D[Server 2]
B -->|IP Hash| E[Server 3]
STACKIT Load Balancer Typen
Layer 4 Load Balancer
Arbeitet auf der Transport-Ebene (TCP/UDP):
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
selector:
app: my-app
Layer 7 Load Balancer
Arbeitet auf der Anwendungsebene (HTTP/HTTPS):
- URL-basiertes Routing
- Host-basiertes Routing
- SSL-Terminierung
:::tip Verwenden Sie Layer 7 Load Balancer für komplexe Routing-Anforderungen und SSL-Offloading. :::
Health Checks
Health Checks stellen sicher, dass Traffic nur an gesunde Server geleitet wird:
{
"healthCheck": {
"protocol": "HTTP",
"port": 8080,
"path": "/health",
"interval": 30,
"timeout": 5,
"unhealthyThreshold": 2,
"healthyThreshold": 2
}
}
Session Persistence
Für zustandsbehaftete Anwendungen:
- Cookie-basiert: Session-Cookie für Client-Zuordnung
- IP-basiert: Source-IP für Server-Zuordnung
:::warning Session Persistence kann die Lastverteilung beeinträchtigen. Verwenden Sie sie nur wenn nötig. :::
SSL/TLS Konfiguration
# SSL-Zertifikat hochladen
stackit lb ssl-cert create \
--name my-cert \
--certificate cert.pem \
--private-key key.pem
# HTTPS Listener konfigurieren
stackit lb listener create \
--protocol HTTPS \
--port 443 \
--ssl-cert my-cert
Monitoring und Metriken
Wichtige Metriken für Load Balancer:
| Metrik | Beschreibung | Schwellenwert |
|---|---|---|
| Request Rate | Anfragen pro Sekunde | > 1000 |
| Error Rate | Fehlerhafte Anfragen | < 1% |
| Latency | Antwortzeit | < 200ms |
| Active Connections | Aktive Verbindungen | < 10000 |
Best Practices
- Implementieren Sie Health Checks: Automatisches Failover
- Verwenden Sie SSL-Terminierung: Entlasten Sie Backend-Server
- Aktivieren Sie Logging: Für Troubleshooting und Analyse
- Konfigurieren Sie Timeouts: Vermeiden Sie hängende Verbindungen
Kostenoptimierung
- Nutzen Sie Auto-Scaling für Backend-Server
- Implementieren Sie Caching
- Verwenden Sie Connection Pooling