OpenStack Octavia ist ein Load Balancer as a Service (LBaaS)-Projekt, mit dem sich Load Balancer in einer OpenStack-Umgebung erstellen und verwalten lassen. Octavia verteilt eingehenden Datenverkehr auf mehrere Backend-Server und trägt so dazu bei, die Verfügbarkeit und Skalierbarkeit von Anwendungen zu erhöhen.
Ein Octavia Load Balancer setzt sich aus mehreren Komponenten zusammen:
- Load Balancer: Die zentrale Komponente, die den eingehenden Datenverkehr entgegennimmt und an die Backend-Server weiterleitet.
- Listener: Definiert den Port und das Protokoll, über die der Load Balancer den Datenverkehr annimmt.
- Pool: Eine Gruppe von Backend-Servern, an die der Datenverkehr verteilt wird.
- Health Monitor: Überwacht den Zustand der Backend-Server und stellt sicher, dass nur funktionsfähige Instanzen Traffic erhalten.
Voraussetzungen
Bevor ein Load Balancer mit OpenStack Octavia erstellt wird, sollten einige grundlegende Voraussetzungen erfüllt sein:
- Ein privates Netzwerk mit einem Subnetz, das für den Load Balancer genutzt werden kann
- Ein Router, der mit diesem privaten Netzwerk verbunden ist
- Backend-Server (z. B. VMs), die später den Datenverkehr vom Load Balancer entgegennehmen
Erstellen eines Load Balancers
1. Zugriff auf das OpenStack Dashboard
Zunächst im OpenStack Dashboard (Horizon) anmelden und in der linken Navigation den Bereich Load Balancers öffnen. Dort auf Create Load Balancer klicken.
2. Load Balancer konfigurieren
Im ersten Schritt wird ein Name für den Load Balancer vergeben. Anschließend das private Subnetz auswählen, in dem sich die Backend-VMs befinden, die den Load Balancer nutzen sollen. Danach mit Next fortfahren.
3. Listener anlegen
Nun wird ein Listener erstellt. Dieser legt fest, über welchen Port und welches Protokoll der Load Balancer den eingehenden Datenverkehr entgegen nimmt.
Standardmäßig schlägt Horizon Port 80 und HTTP vor, diese Werte lassen sich aber flexibel anpassen.
Damit der Listener direkt aktiv ist, sollten Create Listener und Admin State Up aktiviert bleiben. Anschließend mit Next fortfahren.
4. Pool erstellen
Im nächsten Schritt wird ein Pool definiert. Dafür wird ein Name vergeben und eine Load-Balancing-Methode ausgewählt, die bestimmt, wie der Traffic auf die Backend-Server verteilt wird:
Round Robin: Gleichmäßige Verteilung auf alle Backend-Server
Least Connections: Weiterleitung an den Server mit den aktuell wenigsten aktiven Verbindungen
Source IP: Anfragen von derselben Quell-IP landen immer beim selben Backend-Server
Auch hier sollten Create Pool und Admin State Up aktiviert bleiben, damit der Pool sofort einsatzbereit ist. Danach mit Next fortfahren.
5. Pool-Mitglieder hinzufügen
Anschließend werden dem Pool die Mitglieder hinzugefügt. Diese entsprechen den Backend-Servern, die den Datenverkehr vom Load Balancer erhalten.
Über Add Member können nacheinander alle gewünschten Server hinzugefügt werden. Für jedes Mitglied wird der Port angegeben, auf dem die jeweilige Anwendung auf dem Backend-Server erreichbar ist.
6. Health Monitor (optional)
Optional kann nun ein Health Monitor erstellt werden, um den Zustand der Backend-Server zu überwachen. Dazu Create Health Monitor auswählen und den Typ (z. B. HTTP, HTTPS oder TCP) sowie Intervalle und Schwellenwerte konfigurieren.
Der Health Monitor prüft regelmäßig die Erreichbarkeit und Reaktionsfähigkeit der Server. Wird ein Backend als „ungesund“ erkannt, erhält es automatisch keinen Traffic mehr, bis es wieder als gesund gilt.
Nach der Konfiguration kann der Vorgang mit Create Load Balancer abgeschlossen werden.
7. Abschluss und Floating IP
OpenStack Octavia erstellt nun alle Komponenten – Load Balancer, Listener, Pool, Mitglieder und optional den Health Monitor. Dieser Vorgang kann einige Minuten in Anspruch nehmen.
Sobald der Load Balancer aktiv ist, lässt sich der Status im Dashboard überprüfen.
Damit der Load Balancer auch von außen erreichbar ist, muss ihm abschließend eine Floating IP zugewiesen werden.
Weitere Tutorials zum Umgang mit OpenStack-Cloud-Umgebungen findet ihr hier.
Ansprechpartner
Ihr seid noch nicht in unserer OpenStack-Cloud und interessiert euch für unser IaaS? Sprecht uns gerne an.