Cloudcomputing Kochbuch Load Balancer as a Service (LBaaS)

ZIM HilfeWiki - das Wiki

Allgemeine Informationen
Anleitung
Informationen
BetriebssystemAlle
ServiceCloudcomputing
Interessant fürAngestellte, Studierende und Gäste
HilfeWiki des ZIM der Uni Paderborn

no displaytitle found: Cloudcomputing Kochbuch Load Balancer as a Service (LBaaS)

Damit Dienste in der Cloud skalierbar und zuverlässig bereitgestellt werden können, bietet OpenStack auch einen Loadbalancer as a Service an.

Rezepte[Bearbeiten | Quelltext bearbeiten]

Schritt 1: Dienste instanziieren[Bearbeiten | Quelltext bearbeiten]

Voraussetzung für diese Anleitung ist, das Sie bereits mehrere Instanzen eines Services erstellt haben, die Sie über einen Loadbalancer bereitstellen wollen. Darüberhinaus sollte ein internes Netzwerk erstellt worden sein, mit dem die Instanzen verbunden sind.

Wir werden in diesem Beispiel drei Webserver über einen Loadbalancer bereitstellen.

Cloudcomputing-LBAASv2-Kochbuch.png

Wie Sie eine neue Instanz erstellen, finden Sie im Bereich Cloudcomputing Quick-Start.
Eine Anleitung zum erstellen eines Netzwerkes finden Sie im Kochbuch Netzwerk.

Um z.B. in einer Ubuntu Instanz den Apache Webserver zu installieren, verbinden Sie sich per SSH mit der Instanz und geben folgenden Befehl in das Terminal ein:

sudo apt update && sudo apt upgrade -y && sudo apt install apache2 -y

Dies aktualisiert das System und installiert den Apache2-Webserver.

Schritt 2: Loadbalancer erzeugen, Listener erstellen, Pools und Mitglieder konfigurieren[Bearbeiten | Quelltext bearbeiten]

Sie erstellen einen Loadbalancer, indem Sie unter Netzwerk -> Loadbalancer auf Loadbalancer erstellen klicken. Im Dialogfenster vergeben Sie zunächst einen Namen für den Loadbalancer und fügen eine kurze Beschreibung hinzu. Unter dem Punkt Teilnetz geben Sie an, mit welchem Netzwerk der Loadbalancer verbunden sein soll. Wählen Sie hier das Netzwerk, in welchem sich ihre Instanzen befinden, die Sie über den Loadbalancer bereitstellen wollen. Klicken Sie auf Weiter, um zum nächsten Reiter zu gelangen.

Im Reiter Listener Details wird der erste Listener des Loadbalancer konfiguriert. Sie können später weitere hinzufügen. Vergeben Sie zunächst einen Namen für den Listener, um diese später besser unterscheiden zu können. Da wir in dieser Anleitung einen Webserver bereitstellen wollen, wählen wir unter dem Punkt Protokoll den Punkt HTTP. Um einen anderen Dienst als HTTP oder HTTPS bereitzustellen, wählen Sie aus mit welchem Protokoll (TCP oder UDP) und auf welchem Port dieser bereitgestellt wird.

Screenshot OpenStack LoadBalancer Listener.png


Im Reiter Pool-Details vergeben Sie einen Namen für ihren Pool und legen fest, welche Art von Loadbalancer angelegt werden soll.
Es stehen drei Möglichkeiten zur Auswahl:

  • LEAST_CONNECTIONS
Der Loadbalancer wählt die Instanz mit den wenigsten Zugriffen.
  • ROUND_ROBIN
Lastverteilung auf Basis eines Rundlaufverfahrens. Der Loadbalancer wählt immer die nächste Instanz.
  • SOURCE_IP
Der Loadbalancer erstellt Hash-Werte auf Basis der Client IP-Adresse und der Server IP-Adresse und stellt somit sicher, dass ein Client wieder mit dem selben Server verbunden wird, auch wenn die Verbindung unterbrochen wird.


Screenshot OpenStack LoadBalancer Pool.png

In den meisten Fällen ist das ROUND_ROBIN-Verfahren zu empfehlen, da es keine weitere Konfiguration benötigt und eine gleichmäßige Lastverteilung sicherstellt. Klicken Sie auf Weiter um zum Reiter Pool-Mitglieder zu gelangen.

Hier werden Ihnen die verfügbaren Instanzen aus dem zuvor ausgewählten Netzwerk angezeigt. Fügen Sie die gewünschten Instanzen über den Hinzufügen-Button zum Pool hinzu. Achten Sie darauf, die richtige IP-Adresse der Instanz auszuwählen und geben Sie den Port an, auf dem der Service der Instanz bereitgestellt wird.

Screenshot OpenStack LoadBalancer Member.png

Im letzten Reiter Monitordetails können Sie einen Gesundheitsmonitor für die Instanzen des Pools konfigurieren. Da der Loadbalancer vor die Instanzen geschaltet wird, muss dieser überprüfen, ob eine Instanz oder der Dienst der Instanz erreichbar ist. Sollte eine Instanz ausfallen, kann der Loadbalancer darauf reagieren und Clients werden nicht mehr an diese Instanz weitergeleitet.

Es stehen verschiedene Arten des Monitorings zur Verfügung:

  • HTTP / HTTPS
Sie können eine HTTP-Methode und URL-Pfad auswählen, die an den Server gesendet werden soll und welcher HTTP-Statuscode als Antwort erwartet wird.
  • PING
Der Loadbalancer sende einen Ping an die Instanz, um zu überprüfen, ob diese erreichbar ist. (Es wird nur die Verfügbarkeit des Hosts überprüft, nicht ob der Dienst erreichbar ist!)
  • TCP
Der Loadbalancer öffnet eine TCP-Verbindung zum zuvor Konfigurierten Port des Server. Hier ist es sinnvoll eine Methode in Ihrer Anwendung zu implementieren, die nur ein OK als Antwort an den Loadbalancer sendet, eine Verbindung aufbaut und diese wieder schließt.
  • TLS-HELLO
Der Loadbalancer initiiert einen TLS-Handshake, um zu überprüfen, ob die Instanz erreichbar ist.
  • UDP-Connect
Der Loadbalancer baut eine UDP-Verbindung zum Server-Port auf.

Welche Art des Monitorings Sie auswählen, hängt also von ihrem Dienst ab.

Screenshot OpenStack LoadBalancer Monitoring.png

Für unser Webserver-Beispiel verwenden wir die HTTP-Methode auf Port 80. Anschließend klicken Sie auf Loadbalancer erstellen - die Provisionierung des Loadbalancers dauert wenige Minuten.

Schritt 3: Floating IP zuweisen[Bearbeiten | Quelltext bearbeiten]

Damit der über den Loadbalancer bereitgestellte Dienst auch von ausserhalb erreichbar ist, können Sie dem Loadbalancer noch eine Floating-IP zuweisen. Gehen Sie dazu auf der Übersichtsseite unter Netzwerk -> Loadbalancer und klicken im Kontextmenü des jeweiligen Loadbalancers auf Floating-IP zuweisen. Wählen Sie eine der verfügbaren Floating-IPs aus (beachten Sie hier die Verfügbarkeitszonen der Floating-IPs) und klicken Sie auf Zuweisen.

Schritt 4: Funktionstest[Bearbeiten | Quelltext bearbeiten]

Zum überprüfen der Konfiguration rufen Sie den Dienst über die Floating IP des Loadbalancers auf. In diesem Beispiel ist dies ein Webserver - http://[Floating-IP]/. Sie sollten nun die Apache2-Startseite sehen.

Um zu überprüfen, ob verschiedene Instanzen durch den Loadbalancer angesprochen werden, könnten Sie z.B. jede Instanz ihren Namen oder IP-Adresse über den Webserver ausgeben lassen. Dies ist natürlich abhängig vom bereitgestellten Dienst.

sudo sh -c 'hostname > /var/www/html/index.html'

Weitere Konfiguration[Bearbeiten | Quelltext bearbeiten]

Weitere Listener erstellen[Bearbeiten | Quelltext bearbeiten]

Sie können weitere Listener zu ihrem Loadbalancer hinzufügen, um z.B. neben HTTP auch HTTPS bereitzustellen. Dazu gehen Sie in der Übersicht unter Netzwerk -> Loadbalancer auf den Namen ihres Loadbalancers und anschließend im oberen Bereich auf den Reiter Listener.

Klicken Sie auf Listener erstellen, es öffnet sich wieder das Dialogfenster wie in Schritt 2. Geben Sie die Art des Listeners, den Pool sowie den Monitor an. Ist die Einrichtung abgeschlossen, wird der Listener in der Übersicht mit aufgeführt.

Weitere Pools hinzufügen[Bearbeiten | Quelltext bearbeiten]

Sie können weitere Mitglieder zu einem Pool ihres Loadbalancer hinzufügen, indem Sie unter Netzwerk -> Loadbalancer auf den Namen ihres Loadbalancers und anschließend im oberen Bereich auf den Reiter Pool klicken.

Über Pool erstellen öffnet sich wieder das Dialogfenster aus Schritt 2. Geben Sie die Art des Loadbalancers, die Mitglieder des Pools sowie einen Gesundheitsmonitor an. Ist die Einrichtung abgeschlossen, wird der Pool in der Übersicht mit aufgeführt.

Mitglieder zu einem Pool hinzufügen / löschen[Bearbeiten | Quelltext bearbeiten]

Um eine Instanz als Mitglied zu einem bestehenden Pool hinzuzufügen oder eine Instanz aus einem Pool zu löschen, klicken Sie auf den Namen des Pools und wählen im oberen Bereich den Reiter Mitglieder.

Über den Hinzufügen/Löschen Mitglieder-Button öffnet sich eine Übersicht der Mitglieder des Pools und der verfügbaren Instanzen. Klicken Sie auf den Entfernen-Button einer Instanz um diese aus dem Pool zu löschen oder auf den Hinzufügen-Button um eine Instanz zum Pool hinzuzufügen.

Siehe auch[Bearbeiten | Quelltext bearbeiten]


Bei Fragen oder Problemen wenden Sie sich bitte telefonisch oder per E-Mail an uns:

Tel. IT: +49 (5251) 60-5544 Tel. Medien: +49 (5251) 60-2821 E-Mail: zim@uni-paderborn.de

Das Notebook-Café ist die Benutzerberatung des ZIM - Sie finden uns in Raum I0.401

Wir sind zu folgenden Zeiten erreichbar:


Mo-Do Fr
Vor-Ort-Support 08:30 - 16:00 08:30 - 14:00
Telefonsupport 08:30 - 16:00 08:30 - 14:00


Das ZIM:Servicecenter Medien auf H1 hat aktuell zu folgenden Zeiten geöffnet:

Mo-Do Fr
08:00 - 16:00 08:00 - 14:30
Cookies helfen uns bei der Bereitstellung des ZIM HilfeWikis. Bei der Nutzung vom ZIM HilfeWiki werden die in der Datenschutzerklärung beschriebenen Cookies gespeichert.