Cookies helfen uns bei der Bereitstellung des IMT HilfeWikis. Bei der Nutzung vom IMT HilfeWiki werden die in der Datenschutzerklärung beschriebenen Cookies gespeichert.Weitere Informationen

Cloudcomputing Kochbuch Load Balancer as a Service (LBaaS): Unterschied zwischen den Versionen

IMT HilfeWiki - das Wiki
Wechseln zu:Navigation, Suche
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 17: Zeile 17:
 
Wir werden in diesem Beispiel drei Webserver über einen Loadbalancer bereitstellen.
 
Wir werden in diesem Beispiel drei Webserver über einen Loadbalancer bereitstellen.
  
[[Datei:Cloudcomputing-LBAASv2-Kochbuch.png]]
+
[[Datei:Cloudcomputing-LBAASv2-Kochbuch.png|mini|none]]
  
Wie Sie eine neue Instanz erstellen, finden Sie im Bereich [https://hilfe.uni-paderborn.de/Cloudcomputing_Quick-Start Cloudcomputing Quick-Start], eine Anleitung zum erstellen eines Netzwerkes finden Sie im [https://hilfe.uni-paderborn.de/Cloudcomputing_Kochbuch_Netzwerk Kochbuch Netzwerk].
+
Wie Sie eine neue Instanz erstellen, finden Sie im Bereich [https://hilfe.uni-paderborn.de/Cloudcomputing_Quick-Start Cloudcomputing Quick-Start].<br>
 +
Eine Anleitung zum erstellen eines Netzwerkes finden Sie im [https://hilfe.uni-paderborn.de/Cloudcomputing_Kochbuch_Netzwerk 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:<br>
 
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:<br>
Zeile 30: Zeile 31:
 
Sie erstellen einen Loadbalancer, indem Sie unter ''Netzwerk -> Loadbalancer'' auf ''Loadbalancer erstellen'' klicken.
 
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.  
 
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  
+
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.
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
+
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.
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.
 
  
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:
+
[[Datei:Screenshot_OpenStack_LoadBalancer_Listener.png|mini|none]]
 +
 
 +
 
 +
Im Reiter ''Pool-Details'' vergeben Sie einen Namen für ihren Pool und legen fest, welche Art von Loadbalancer angelegt werden soll. <br>
 +
Es stehen drei Möglichkeiten zur Auswahl:
  
 
*'''LEAST_CONNECTIONS'''
 
*'''LEAST_CONNECTIONS'''
Zeile 47: Zeile 49:
 
*'''SOURCE_IP'''
 
*'''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.
 
: 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.
 +
 +
 +
[[Datei:Screenshot_OpenStack_LoadBalancer_Pool.png|mini|none]]
  
 
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.
 
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.
+
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.  
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.  
+
 
 +
[[Datei:Screenshot_OpenStack_LoadBalancer_Member.png|mini|none]]
  
 
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.
 
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.
Zeile 68: Zeile 74:
  
 
Welche Art des Monitorings Sie auswählen, hängt also von ihrem Dienst ab.  
 
Welche Art des Monitorings Sie auswählen, hängt also von ihrem Dienst ab.  
 +
 +
[[Datei:Screenshot_OpenStack_LoadBalancer_Monitoring.png|mini|none]]
  
 
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.
 
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.

Aktuelle Version vom 10. Juni 2021, 09:34 Uhr

Anleitung
Allgemeine Informationen
Informationen
Betriebssystem Alle
Service Cloudcomputing
Interessant für Angestellte, Studierende und Gäste
HilfeWiki des IMT 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

Schritt 1: Dienste instanziieren

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

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

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

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

Weitere Listener erstellen

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

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

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


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: imt@uni-paderborn.de

Der Servicepoint ist aktuell im Notebook-Café zu finden

Das IMT:Notebook-Café (Raum I0.401) bietet derzeit eingeschränkten Support und hat Montags bis Donnerstags von 08:30 - 16:00 Uhr und Freitags 08:30 - 15:00 Uhr geöffnet. Bitte beachten Sie die derzeit geltenden Hygienebestimmungen.

Das IMT:Servicecenter Medien auf H1 hat aktuell Montags bis Donnerstags von 8:00 - 16:00 Uhr und Freitags von 8:00 - 14:00 Uhr geöffnet.