Grundlagen von Load Balancer
Mit dem Load Balancer können Sie Ihre bei STACKIT gehosteten Services in Zeiten hoher Nachfrage skalieren und vor Ausfällen schützen. Der STACKIT Load Balancer besteht aus zwei schlanken virtuellen Maschinen, die mit einer geeigneten Load Balancer Software ausgestattet sind. Sie werden direkt in Ihrem Projekt geclustert und der Netzwerkzugriff wird durch automatisch bereitgestellte entsprechende Sicherheitsgruppen sichergestellt. Sie können Ihren Load Balancer über die einfache STACKIT Portal GUI oder über unsere Load Balancer API erstellen. In der Regel laufen Services auf virtuellen Maschinen oder in Containern und sind über ein STACKIT Netzwerk verbunden - eine virtuelle Service-Maschine (IP-Adresse) und ein Netzwerk sind zwingende Voraussetzungen für die Konfiguration eines STACKIT Load Balancers.
Zu diesem Zeitpunkt kann der STACKIT Load Balancer den Layer-4-TCP-Netzwerkverkehr mit einem Round-Robin-Verfahren über ein aktives / passives Cluster-Setup verarbeiten.
Load Balancer-Algorithmus
Als Standard wird ein Round-Robin-Algorithmus verwendet. Wenn auf einem Zielpool die auf der Quell-IP basierende Sitzungsaurechterhaltung aktiviert ist, wird auf Maglev umgeschaltet. Für Details siehe unten.
Listener
Der Listener ist Ihr Zugangspunkt für die Kommunikation, der den Datenverkehr empfängt, der an mehrere Ziele (targets) weitergeleitet werden soll. Er wird mit der externen (öffentlichen) oder internen (privaten) IP-Adresse und dem Dienstport definiert - sowohl IP-Adresse als auch Port sind obligatorische Attribute.
Zielpool/Ziele
Das Ziel ist eine virtuelle Dienstmaschine (oder ein Container) in Ihrem Projekt, die vom Listener den verteilten Verkehr nach dem Lastausgleich empfängt.
Der Zielpool definiert eine Gruppe von einem oder mehreren Zielen und einen Zielpool-Port, der für die Kommunikation mit den Zielen verwendet wird. Um einen Zielpool einzurichten, müssen mindestens ein Ziel (IP-Adresse) und ein Zielpool-Port angegeben werden.
Die Sitzungsaufrechterhaltung auf dem Zielpool kann mit session_persistence.use_source_ip_address
aktiviert werden. Wenn dieser Wert auf true
gesetzt ist, wird der Loadbalancer-Algorithmus auf Maglev umgestellt.
Healthcheck 
Der Healthcheck Monitor des Load Balancers überprüft, ob die Ziele noch verfügbar sind, so dass sie den Lastausgleichsverkehr empfangen können. Der Healthcheck ist standardmäßig aktiviert und unterstützt die Anpassung (optional):
- Der Wert "Prüfintervall" steuert, wie oft die Verbindungen geprüft werden sollen.
- Der Wert "down after" gibt an, nach wie vielen fehlgeschlagenen Verbindungsversuchen ein Ziel als unerreichbar gilt.
- Der Wert "up after" gibt an, nach wie vielen erfolgreichen Prüfungen ein Ziel als erreichbar gilt.
Timeouts bei Verbindungsleerlauf
Der Load Balancer trackt jede von einem Client eingehende Verbindung. Um Ressourcen wieder freizugeben, werden Verbindungen geschlossen, die zu lange nicht genutzt wurden. Verbindungen werden elegant geschlossen, d.h. außer an das Ziel wird ein FIN-Segment auch an den Client gesendet. Empfängt ein Loadbalancer ein Segment für eine Verbindung, die nicht getrackt wird, sendet er ein RST-Segment an den Client.
Der Timeout kann für jeden Listener konfiguriert werden. Niedrige Werte ermöglichen dem Load Balancer, schneller Platz für neue Verbindungen zu schaffen. Durch höhere Timeouts können langandauernde Verbindungen länger aufrecht erhalten werden, ohne dass Daten gesendet werden müssen.
Der Idle Timer wird zurückgesetzt, wenn der Load Balancer Daten in eine beliebige Richtung weiterleitet. Ein TCP-Keepalive-Signal, das keine Daten enthält, setzt den Timer nicht zurück.
Servicepläne
Servicepläne definieren die VM-Variante (Flavor) und die maximale Anzahl an Verbindungen, die für Ihren Load Balancer verfügbar sind.
- Flavors: Geben Sie Hardware-Konfigurationen wie Rechenleistung, Arbeitsspeicher und Massenspeicherkapazität für Load Balancer-Instanzen an.
- Maximale Verbindungen: Bestimmen Sie die maximale Anzahl an gleichzeitigen Verbindungen pro Load Balancer-Instanz.
Um den Serviceplan festzulegen, muss ein Feld planId
übergeben werden.
planID | Maximale Verbindungen | Kosten | |
---|---|---|---|
p10 | t1.2 | 10000 | 0,01304166667 € / h 9,3900000024 € / Monat |
p50 | s1a.4d | 50000 | 0,01792916667 € / h 12,9090000024 € / Monat |
p250 | s1a.8d | 250000 | 0,03545277778 € / h 25,5260000016 € / Monat |
p750 | s1a.16d | 750000 | 0,07050305556 € / h 50,7622000032 € / Monat |
p1500 | s1a.60d | 1500000 | 0,14059444444 € / h 101,2279999968 € / Monat |