Themen
15. September 2020
Der in den Edge Gateway integrierte Load Balancer basiert auf HAProxy und ist damit sehr leistungsfähig. Das Webinterface erlaubt eine Konfiguration der meisten Anwendungsfälle. Ist das Einsatzszenario komplexer, können mit der HAProxy-Konfigurationssprache sogenannte Application Rules nach eigenen Bedürfnissen definiert werden. Die Grundkonfiguration des Load Balancers wird anhand eines Lastausgleichs zwischen zwei Webservern nachfolgend erläutert.
Die folgende Terminologie und Logik ist wichtig für das Verständnis der Funktionsweise des Load Balancers:
In Virtual Datacenter wurden zwei VMs als Webserver konfiguriert und mit Startseiten ausgestattet, die zur Identifikation entweder „webserver1“ oder „webserver2“ ausgeben. So kann der effektiv zugewiesene Webserver erkannt werden.
Im folgenden Load-Balancing-Szenario soll die Last zwischen beiden Webservern verteilt werden. Die interne Kommunikation erfolgt dabei unverschlüsselt per HTTP und der Load Balancer verschlüsselt dann die Kommunkation im Internet mit HTTPS. Um das Load Balancing zwischen den beiden VMs zu konfigurieren, öffnen Sie Services in den Einstellungen des Edge Gateways und da den Tab Load Balancer. Schalten Sie diesen als Erstes in der Global Configuration auf Enabled.
Im Tab Application Profile erstellen Sie ein neues Profil für Ihre Applikation oder Ihren Service und vergeben einen Namen dafür. Konfigurieren Sie das Protokoll des Services, ob ein SSL Passthrough stattfinden soll und welche Zertifikate eingesetzt werden. Im Beispiel nutzen wir ein selbstsigniertes Zertifikat des Edge Gateways.
Für das Service Monitoring sind im entsprechenden Tab bereits Monitors für TCP, HTTP und HTTPS konfiguriert, welche die Pool-Members lediglich auf eine gültige Antwort des entsprechenden Protokolls prüfen. Bei Bedarf kann beispielsweise auch auf eine bestimmte Antwort von einer bestimmten URL geprüft werden. Für unser Szenario nutzen wir den HTTP-Monitor, der die Webserver auf eine gültige HTTP-Antwort prüft.
Im Pool werden alle beteiligten Webserver als Member hinzugefügt, in unserem Fall webserver1 und webserver2. Als Load-Balancing-Algorithmus wird Round Robin festgelegt und damit quasi eine zufällige Verteilung erreicht. Mit dem definierten HTTP-Monitor wird der Zustand der Webserver überwacht und bei Problemen fehlerhafte Server vom Load Balancing ausgeschlossen.
Zuletzt wird der Virtual Server erstellt, welcher der vom Internet erreichbare Knotenpunkt darstellt. Ihm wird eine öffentliche IP Addresse, ein Port und ein Protokoll zugeordnet, mit denen der Service vom Internet her erreichbar sein wird. Die restliche Konfiguration wird durch Zuordnung der zuvor erstellten Objekte Application Profile und Pool erreicht. Mittels Acceleration würde der Load Balancer nur noch bis Layer 4 statt 7 agieren, sodass ein weniger intelligentes dafür aber performanteres Load Balancing möglich ist. Höhere Protokolle als TCP und UDP sind damit in der Konfiguration nicht erlaubt, weshalb wir mit unserer HTTPS-Konfiguration darauf verzichten.
Der Load Balancer ist nun fertig konfiguriert. Zuletzt muss noch eine Firewall Regel erstellt werden, die den Traffic für den HTTPS-Port 443 auf die öffentliche WAN-IP des Load Balancers erlaubt.
Wird nun die URL https://212.237.xxx.xxx aufgerufen, wird unsere Anfrage mittels Round-Robin-Algorithmus beinahe abwechselnd zwischen webserver1 und webserver2 verteilt.
Damit ist der Load Balancer betriebsbereit.
Unser Produkt-Assistent hilft Ihnen, das für Sie passende Produkt zu finden.