Load Balancer
Ein Load Balancer innerhalb der NETWAYS Cloud ermöglicht es bequem, schnell und resilient Netzwerktraffic auf mehrere Server zu lenken, um die Last gleichmäßig zu verteilen und die Verfügbarkeit sowie Leistung seiner Anwendungen zu verbessern. Die folgenden Beispiele decken nur die grundlegenden erforderlichen Einstellungen ab.
Konfiguration über das OpenStack-Dashboard
"Load Balancers" befinden sich als Unterpunkt des Menüpunkts "Netzwerk" im linken Menü.

Um einen Load Balancer zu erstellen, klickt man auf den Button "+ Load Balancer erstellen". Ein Fenster öffnet sich und führt durch die erste Konfiguration.
Auf der ersten Seite können grundlegende Details wie Name und Beschreibung eingegeben werden. Das Festlegen eines Namens ist optional, wird jedoch empfohlen. Die Auswahl eines Subnetzes ist hingegen zwingend erforderlich.
In einem neuen OpenStack-Projekt kann das Haupt-Subnetz gefunden werden, indem nach einem Subnetz gesucht wird, das denselben Namen wie das OpenStack-Projekt trägt, jedoch mit der Endung "-subnet".
Weitere Informationen zu den erweiterten Feldern sind durch Klicken auf das Fragezeichen auf der rechten Seite des Fensters abrufbar.

Man klickt auf "Weiter", um fortzufahren.
Auf der nächsten Seite müssen die Listener-Details eingegeben werden. Ein Name ist optional, jedoch müssen ein Protokoll ausgewählt und eine Portnummer festgelegt werden. Der Listener definiert den Frontend-Port des Load Balancers. Falls der Load Balancer für Webserver bereitgestellt werden soll, empfiehlt es sich, HTTP oder TCP als Protokoll sowie den Port 80 oder 443 zu setzen.

Standardmäßig ist das "Verbindungslimit" auf "-1" gesetzt, was bedeutet, dass kein Limit erzwungen wird. Allerdings kann das Fehlen eines Limits Probleme verursachen.
Nach dem Klick auf "Weiter" kann ein Load-Balancing-Algorithmus ausgewählt werden. Für Standard-Setups wird "ROUND_ROBIN" empfohlen.

Im Abschnitt "Pool-Mitglieder" können Mitglieder dem Pool zugewiesen werden. Diese Mitglieder sind die VMs, an die eingehende Anfragen weitergeleitet werden.
Zusätzlich muss die Portnummer festgelegt werden, unter der die Anwendung oder der Webserver in der jeweiligen VM läuft.
Es besteht die Möglichkeit, ein Gewicht festzulegen – Mitglieder mit höherem Gewicht erhalten mehr Anfragen als Mitglieder mit niedrigerem Gewicht.

Im letzten Abschnitt kann ein Health Monitor für den Pool und seine Mitglieder definiert werden. Abhängig von der Anwendung oder dem Webserver sollte ein passendes Protokoll ausgewählt werden. Zudem können Timeouts und Verzögerungsparameter festgelegt werden, nach denen der Health Monitor die Checks durchführt.
Hinweis: Weitere Informationen zu diesen Parametern sind durch Klicken auf das Fragezeichen im rechten Bereich des Fensters abrufbar.

Nachdem alle erforderlichen Felder ausgefüllt wurden, klickt man auf den orangefarbenen Button "Load Balancer erstellen".
Es dauert eine Weile, bis der Load Balancer und alle abhängigen Ressourcen bereitgestellt sind.
Als optionalen letzten Schritt kann dem Load Balancer eine Floating IP zugewiesen werden. Dadurch wird der Load Balancer öffentlich im Internet erreichbar. Es ist jedoch zu beachten, dass dadurch jeder im Internet Zugriff auf die Anwendung oder Webseite auf den VMs erhält.
Um eine Floating IP zuzuweisen, klickt man im Dropdown-Menü des Load Balancers auf "Floating IP zuweisen".

Falls bereits Floating IPs für das OpenStack-Projekt zugewiesen wurden, kann eine bestehende Floating IP ausgewählt oder eine neue aus dem sich öffnenden Fenster zugewiesen werden.
Falls eine neue Floating IP aus einem Pool zugewiesen werden soll, empfiehlt es sich, das "public-network" auszuwählen.

Zum Abschluss klickt man auf "Zuweisen".
Damit ist die Grundkonfiguration des Load Balancers abgeschlossen.
Load Balancer anlegen mit OpenStack CLI
Um einen Load Balancer, nach dem Beispiel oben über die OpenStack CLI anzulegen, können die folgenden Befehle verwendet werden:
openstack loadbalancer create --name lb1 --vip-subnet-id private-subnet --wait
openstack loadbalancer listener create --name listener1 --protocol HTTP --protocol-port 80 --wait lb1
openstack loadbalancer pool create --name pool1 --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP --wait
openstack loadbalancer healthmonitor create --delay 5 --max-retries 4 --timeout 10 --type HTTP --url-path /healthcheck --wait pool1
openstack loadbalancer member create --subnet-id private-subnet --address 192.0.2.10 --protocol-port 80 --wait pool1
openstack loadbalancer member create --subnet-id private-subnet --address 192.0.2.11 --protocol-port 80 --wait pool1
openstack floating ip create public
# Die notwendigen IDs sollten bei der Ausgabe der vorherigen Befehle ausgegeben werden
openstack floating ip set --port <load_balancer_vip_port_id> <floating_ip_id>```