#
Loadbalancer erstellen, ändern und löschen
#
Kyberio Secure Public Cloud – Kundenanleitung
#
Überblick
Ein Loadbalancer verteilt eingehenden Netzwerkverkehr auf mehrere Instanzen (Backend-Server). Dies sorgt für hohe Verfügbarkeit und eine gleichmäßige Auslastung Ihrer Dienste. Die Kyberio Secure Public Cloud nutzt den Octavia-Loadbalancer-Dienst.
#
Aufbau eines Loadbalancers
Internet
│
▼
┌─────────────────────┐
│ Loadbalancer │ ← Floating IP (öffentlich)
│ (203.0.113.50) │
└────────┬────────────┘
│
┌────┴─────┐
▼ ▼
┌────────┐ ┌────────┐
│Listener│ │Listener│ ← Port 80, Port 443
│ :80 │ │ :443 │
└───┬────┘ └───┬────┘
│ │
▼ ▼
┌────────┐ ┌────────┐
│ Pool │ │ Pool │ ← Backend-Pools
└───┬────┘ └───┬────┘
│ │
┌─┴──┐ ┌─┴──┐
▼ ▼ ▼ ▼
┌──┐ ┌──┐ ┌──┐ ┌──┐
│VM│ │VM│ │VM│ │VM│ ← Mitglieder (Members)
└──┘ └──┘ └──┘ └──┘
#
Beispiel-Szenario
Wir erstellen einen HTTP-Loadbalancer für zwei Webserver:
#
1. Loadbalancer erstellen
#
1.1 Über das Horizon-Dashboard
Schritt 1: Loadbalancer anlegen
- Navigieren Sie zu Projekt → Netzwerk → Loadbalancer.
- Klicken Sie auf „Loadbalancer erstellen".
- Durchlaufen Sie den Assistenten:
Seite „Loadbalancer-Details":
| Feld | Wert |
|---|---|
| Name | lb-webserver |
| Subnetz | subnet-intern-01 (10.0.1.0/24) |
| IP-Adresse | Leer lassen (automatisch) |
| Admin State | aktiviert |
Seite „Listener":
| Feld | Wert |
|---|---|
| Name | listener-http |
| Protokoll | HTTP |
| Port | 80 |
Seite „Pool":
| Feld | Wert |
|---|---|
| Name | pool-webserver |
| Algorithmus | ROUND_ROBIN |
| Protokoll | HTTP |
| Session-Persistenz | Keine (oder SOURCE_IP bei Bedarf) |
Seite „Pool-Mitglieder":
- Fügen Sie Ihre Webserver hinzu:
10.0.1.11, Port80, Gewicht110.0.1.12, Port80, Gewicht1
Seite „Health-Monitor":
| Feld | Wert |
|---|---|
| Typ | HTTP |
| URL-Pfad | /health |
| Erwartete HTTP-Codes | 200 |
| Intervall (Sek.) | 10 |
| Timeout (Sek.) | 5 |
| Max. Wiederholungen | 3 |
- Klicken Sie auf „Loadbalancer erstellen".
Schritt 2: Floating IP zuweisen
- Navigieren Sie zum erstellten Loadbalancer.
- Notieren Sie sich die VIP-Adresse (z. B.
10.0.1.100). - Navigieren Sie zu Projekt → Netzwerk → Floating IPs.
- Weisen Sie eine Floating IP dem VIP-Port des Loadbalancers zu.
#
1.2 Über die CLI
# 1. Loadbalancer erstellen
openstack loadbalancer create \
--name lb-webserver \
--vip-subnet-id subnet-intern-01 \
--wait
# 2. Listener erstellen
openstack loadbalancer listener create \
--name listener-http \
--protocol HTTP \
--protocol-port 80 \
lb-webserver \
--wait
# 3. Pool erstellen
openstack loadbalancer pool create \
--name pool-webserver \
--protocol HTTP \
--lb-algorithm ROUND_ROBIN \
--listener listener-http \
--wait
# 4. Health-Monitor erstellen
openstack loadbalancer healthmonitor create \
--name hm-http \
--type HTTP \
--url-path /health \
--expected-codes 200 \
--delay 10 \
--timeout 5 \
--max-retries 3 \
pool-webserver \
--wait
# 5. Mitglieder hinzufügen
openstack loadbalancer member create \
--name member-web-01 \
--address 10.0.1.11 \
--protocol-port 80 \
--subnet-id subnet-intern-01 \
--weight 1 \
pool-webserver \
--wait
openstack loadbalancer member create \
--name member-web-02 \
--address 10.0.1.12 \
--protocol-port 80 \
--subnet-id subnet-intern-01 \
--weight 1 \
pool-webserver \
--wait
# 6. Floating IP zuweisen
VIP_PORT=$(openstack loadbalancer show lb-webserver -f value -c vip_port_id)
openstack floating ip set --port $VIP_PORT 203.0.113.50
# 7. Status prüfen
openstack loadbalancer show lb-webserver
openstack loadbalancer member list pool-webserver
#
2. Loadbalancer ändern
#
2.1 Über das Horizon-Dashboard
- Navigieren Sie zu Projekt → Netzwerk → Loadbalancer.
- Klicken Sie auf den Namen des Loadbalancers.
- Sie können nun:
- Listener bearbeiten, hinzufügen oder entfernen
- Pools und deren Algorithmus ändern
- Mitglieder hinzufügen, entfernen oder deren Gewicht ändern
- Health-Monitor anpassen
#
2.2 Über die CLI
Mitglied hinzufügen:
openstack loadbalancer member create \
--name member-web-03 \
--address 10.0.1.13 \
--protocol-port 80 \
--subnet-id subnet-intern-01 \
--weight 1 \
pool-webserver \
--wait
Mitglied entfernen:
# Member-ID ermitteln
openstack loadbalancer member list pool-webserver
# Mitglied löschen
openstack loadbalancer member delete pool-webserver member-web-03 --wait
Gewichtung eines Mitglieds ändern (z. B. für gewichtetes Load-Balancing):
openstack loadbalancer member set \
--weight 2 \
pool-webserver member-web-01
Lb-Algorithmus ändern:
openstack loadbalancer pool set \
--lb-algorithm LEAST_CONNECTIONS \
pool-webserver
Verfügbare Algorithmen:
| Algorithmus | Beschreibung |
|---|---|
| ROUND_ROBIN | Gleichmäßige Verteilung reihum |
| LEAST_CONNECTIONS | Server mit wenigsten aktiven Verbindungen |
| SOURCE_IP | Gleiche Quell-IP immer zum gleichen Server |
Neuen Listener hinzufügen (z. B. HTTPS):
openstack loadbalancer listener create \
--name listener-https \
--protocol TERMINATED_HTTPS \
--protocol-port 443 \
--default-tls-container-ref <secret-ref> \
lb-webserver \
--wait
Health-Monitor anpassen:
openstack loadbalancer healthmonitor set hm-http \
--delay 15 \
--timeout 10 \
--max-retries 5
#
3. Loadbalancer löschen
#
3.1 Über das Horizon-Dashboard
- Navigieren Sie zu Projekt → Netzwerk → Loadbalancer.
- Markieren Sie den zu löschenden Loadbalancer.
- Klicken Sie auf „Loadbalancer löschen".
- Bestätigen Sie mit „Löschen".
Hinweis: Alle untergeordneten Ressourcen (Listener, Pools, Mitglieder, Health-Monitors) werden automatisch mitgelöscht, wenn Sie die Kaskaden-Löschung verwenden.
#
3.2 Über die CLI
Kaskaden-Löschung (empfohlen – löscht alles in einem Schritt):
openstack loadbalancer delete lb-webserver --cascade --wait
Manuelle Löschung (in Reihenfolge):
# 1. Health-Monitor löschen
openstack loadbalancer healthmonitor delete hm-http --wait
# 2. Mitglieder löschen
openstack loadbalancer member delete pool-webserver member-web-01 --wait
openstack loadbalancer member delete pool-webserver member-web-02 --wait
# 3. Pool löschen
openstack loadbalancer pool delete pool-webserver --wait
# 4. Listener löschen
openstack loadbalancer listener delete listener-http --wait
# 5. Loadbalancer löschen
openstack loadbalancer delete lb-webserver --wait
Floating IP freigeben (falls nicht mehr benötigt):
openstack floating ip delete 203.0.113.50
#
4. Loadbalancer-Status überwachen
# Übersicht aller Loadbalancer
openstack loadbalancer list
# Detailstatus eines Loadbalancers
openstack loadbalancer status show lb-webserver
# Statistiken anzeigen
openstack loadbalancer stats show lb-webserver
#
Häufige Fragen
Wie richte ich HTTPS-Terminierung ein?
Sie benötigen ein TLS-Zertifikat, das im Barbican Secret Store hinterlegt ist. Erstellen Sie dann einen Listener mit dem Protokoll TERMINATED_HTTPS und referenzieren Sie das Zertifikat.
Wie erkenne ich, ob ein Backend-Server ausgefallen ist?
Der Health-Monitor prüft regelmäßig die Erreichbarkeit. Ausgefallene Server erhalten den Status ERROR und werden automatisch aus der Rotation genommen.
Kann ich den Loadbalancer zwischen Projekten verschieben? Nein, Loadbalancer sind projektgebunden. Sie müssen einen neuen Loadbalancer im Zielprojekt erstellen.
Kyberio Secure Public Cloud – Dokumentation