stackit.guru

Load Balancing auf STACKIT

#networking
load-balancing networking high-availability

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:

MetrikBeschreibungSchwellenwert
Request RateAnfragen pro Sekunde> 1000
Error RateFehlerhafte Anfragen< 1%
LatencyAntwortzeit< 200ms
Active ConnectionsAktive Verbindungen< 10000

Best Practices

  1. Implementieren Sie Health Checks: Automatisches Failover
  2. Verwenden Sie SSL-Terminierung: Entlasten Sie Backend-Server
  3. Aktivieren Sie Logging: Für Troubleshooting und Analyse
  4. Konfigurieren Sie Timeouts: Vermeiden Sie hängende Verbindungen

Kostenoptimierung

  • Nutzen Sie Auto-Scaling für Backend-Server
  • Implementieren Sie Caching
  • Verwenden Sie Connection Pooling