Listener, Pools, Mitglieder und Health-Monitore
Die Teile eines Load Balancers, die Protokolle, Algorithmen und Einstellungen, die jeder akzeptiert, und was Bereitstellungs- und Betriebsstatus bedeuten.
Ein Load Balancer empfängt Datenverkehr an seiner VIP und leitet ihn an Ihre Server weiter. Er besteht aus vier Arten von Teilen: Listener nehmen den Datenverkehr an, Pools verteilen ihn auf Mitglieder, Mitglieder empfangen ihn, und Health-Monitore prüfen die Mitglieder. Jeder Teil hat eigene Einstellungen und einen eigenen Status.
Load Balancer und VIP
Der Load Balancer ist das Objekt, dem die VIP, die Listener und die Pools gehören. Er gehört zu einem Projekt und läuft in der Region des Projekts.
VIP. Die VIP ist eine Adresse in einem Subnetz eines der Netzwerke des Projekts. Beim Erstellen des Load Balancers wählen Sie das Subnetz aus und überlassen die Adresse entweder der Plattform oder legen sie selbst fest. Eine feste Adresse muss im Bereich des Subnetzes liegen und darf weder die Gateway-, die Netzwerk- noch die Broadcast-Adresse des Subnetzes sein. Sie darf außerhalb des Zuweisungspools des Subnetzes liegen. Subnetz und Adresse können nach dem Erstellen nicht geändert werden.
Größe
Die Größe ist lb.small, lb.standard oder lb.large. Die Plattform sucht in der Region nach einem Load-Balancer-Flavor mit demselben Namen und verwendet ihn, wenn die Region einen definiert. Hat die Region keinen Flavor mit diesem Namen, verwendet der Load Balancer den Standard der Region, unabhängig von der gewählten Größe. Die Größe ändert den Stundensatz nicht und kann nach dem Erstellen nicht geändert werden.
Listener
Ein Listener nimmt Datenverkehr für ein Protokoll an einem Port der VIP an und übergibt ihn an seinen Standard-Pool.
| Protokoll | Was er annimmt |
|---|---|
| HTTP | HTTP-Datenverkehr. |
| HTTPS | HTTPS-Datenverkehr. Die Konsole fragt für dieses Protokoll kein Zertifikat ab. |
| TCP | TCP-Verbindungen. |
| TERMINATED_HTTPS | HTTPS-Datenverkehr, der am Load Balancer endet und ein TLS-Zertifikat benötigt. |
Wichtig
In der Konsole können Sie keinen TERMINATED_HTTPS-Listener erstellen.
- Port. Jeder Listener eines Load Balancers benötigt einen eigenen Port.
- Verbindungslimit. Der Standardwert ist 20.000. Sie können ihn später ändern.
- Standard-Pool. Der Pool, der den Datenverkehr des Listeners empfängt. Der Assistent verbindet seinen Listener mit seinem Pool. Für einen Listener, den Sie später hinzufügen, siehe Listener mit einem Pool verbinden.
Protokoll und Port eines Listeners können nach dem Erstellen nicht geändert werden. Um ein anderes Protokoll oder einen anderen Port zu verwenden, fügen Sie einen neuen Listener hinzu, verbinden Sie ihn mit einem Pool, und löschen Sie den alten.
Pools
Ein Pool ist eine Gruppe von Mitgliedern mit einem gemeinsamen Protokoll und einem gemeinsamen Balancing-Algorithmus. Sein Protokoll ist das, mit dem der Load Balancer die Mitglieder erreicht: HTTP, HTTPS, TCP oder PROXY. Das Protokoll eines Pools kann nach dem Erstellen nicht geändert werden.
Listener- und Pool-Protokolle
Ein Listener kann Datenverkehr nur an einen Pool übergeben, dessen Protokoll zu seinem eigenen passt. Wenn der Load-Balancing-Dienst die Kombination ablehnt, wechselt der Load Balancer in den Status Fehler, und seine Registerkarte Aktivität zeigt den Grund an. Löschen Sie ihn, und erstellen Sie einen neuen mit einer Kombination, die der Dienst akzeptiert.
Ein HTTP-Listener mit einem HTTP-Pool ist eine Kombination, die der Dienst akzeptiert. Load Balancers läuft auf OpenStack Octavia, das jede akzeptierte Kombination definiert; siehe die Kombinationen von Listener- und Pool-Protokollen in der Octavia-API-Referenz.
Balancing-Algorithmen
| Algorithmus | Wert in der API | Verteilung des Datenverkehrs |
|---|---|---|
| Round Robin | ROUND_ROBIN | Die Mitglieder kommen abwechselnd an die Reihe. |
| Wenigste Verbindungen | LEAST_CONNECTIONS | Jede neue Verbindung geht an das Mitglied mit den wenigsten aktiven Verbindungen. |
| Quell-IP | SOURCE_IP | Verbindungen von derselben Client-IP-Adresse gehen an dasselbe Mitglied. |
Den Algorithmus eines Pools können Sie später ändern.
Sitzungspersistenz
Sitzungspersistenz hält einen Client beim selben Mitglied.
| Option | Grundlage |
|---|---|
| Keine | Keine Persistenz. |
SOURCE_IP | Die IP-Adresse des Clients. |
HTTP_COOKIE | Ein Cookie, das der Load Balancer setzt. |
Verwenden Sie SOURCE_IP oder HTTP_COOKIE. Sie legen die Persistenz im Schritt Pool des Assistenten oder später beim Bearbeiten des Pools fest. Ein Pool, den Sie auf der Seite des Load Balancers hinzufügen, hat zunächst keine Persistenz.
Mitglieder
Ein Mitglied, auf der Seite des Load Balancers als Ziel angezeigt, ist eine IP-Adresse mit Port, die Datenverkehr von einem Pool empfängt.
- Adresse. Wählen Sie im Assistenten einen der Server des Projekts aus; die Konsole trägt seine feste IP-Adresse ein oder seine Floating-IP, wenn er keine feste IP-Adresse hat. Sie können auch eine beliebige Adresse eingeben. Auf der Seite des Load Balancers geben Sie die Adresse immer selbst ein.
- Port. Der Standardwert ist 8080.
- Gewicht. Der Standardwert ist 1. Sie können es im Assistenten festlegen. Ziele, die Sie auf der Seite des Load Balancers hinzufügen, erhalten das Gewicht 1.
- Rolle. Die Spalte Rolle zeigt Primär oder Backup. Mitglieder, die Sie in der Konsole hinzufügen, sind primäre Mitglieder.
Der Assistent benennt seine Mitglieder member-1, member-2 usw. Ein Pool kann dieselbe Kombination aus Adresse und Port nicht zweimal enthalten.
Health-Monitore
Ein Health-Monitor prüft die Mitglieder eines Pools, und ein Pool hat höchstens einen. Wenn ein Load Balancer überhaupt keinen Health-Monitor hat, zeigt seine Registerkarte Health-Monitore an: Keine Health-Monitore konfiguriert. Ziele werden nicht aktiv geprüft.
| Feld | Regeln |
|---|---|
| Monitor-Typ | HTTP, HTTPS, TCP oder PING. Kann nach dem Erstellen des Monitors nicht geändert werden. |
| Verzögerung (s) | Das Intervall zwischen Prüfungen in Sekunden. |
| Timeout (s) | Wie lange eine Prüfung wartet, in Sekunden. |
| Max. Wiederholungen | Eine ganze Zahl. |
| URL-Pfad | Nur für HTTP- und HTTPS-Monitore. |
| Erwartete Codes | Nur für HTTP- und HTTPS-Monitore. Die HTTP-Statuscodes, die als gesund gelten. |
Die im Assistenten vorbelegten Werte finden Sie unter Health-Monitor. In der Konsole hängen Sie einen Health-Monitor beim Erstellen des Load Balancers an. Danach ändern Sie Monitore mit der REST-API; siehe Health-Monitore ändern.
Status
Ein Load Balancer hat zwei Status: Der Bereitstellungsstatus gibt an, wo er sich in seinem Lebenszyklus befindet, und der Betriebsstatus gibt an, wie er funktionierte, als die Plattform ihn zuletzt aufgezeichnet hat. Listener, Pools, Mitglieder und Health-Monitore haben ebenfalls einen Betriebsstatus.
Bereitstellungsstatus
| Status | Bedeutung |
|---|---|
| Erstellung ausstehend | Die Plattform baut den Load Balancer auf. Änderungen an seinen Listenern, Pools und Health-Monitoren, neue Ziele und das Löschen werden abgelehnt, bis der Aufbau abgeschlossen ist. |
| Aktiv | Der Load Balancer ist aufgebaut und akzeptiert Änderungen. |
| Löschung ausstehend | Die Plattform löscht den Load Balancer. Wenn der Dienst die Löschung nicht bestätigt, bleibt der Load Balancer in diesem Status, während die Plattform es erneut versucht. |
| Fehler | Der Aufbau ist fehlgeschlagen oder wurde abgebrochen, oder der Load-Balancing-Dienst meldet den Load Balancer als fehlerhaft. Änderungen an seinen Listenern, Pools und Health-Monitoren sowie neue Ziele werden abgelehnt. Löschen Sie ihn, und erstellen Sie einen neuen. |
Die Filter der Liste fassen Erstellung ausstehend und Löschung ausstehend unter Bereitstellung zusammen.
Betriebsstatus
Der Betriebsstatus ist Online, Beeinträchtigt, Offline, Fehler oder Keine Überwachung. Die Ziele eines Pools ohne Health-Monitor zeigen Keine Überwachung an. Auf der Registerkarte Übersicht zählt Gesunde Ziele die Mitglieder mit dem Status Online.
Wann sich Status ändern
Die Plattform zeichnet die Status auf, wenn sie einen Vorgang am Load Balancer abschließt, z. B. das Erstellen oder das Hinzufügen eines Listeners, eines Pools oder eines Ziels. Außerdem liest sie die Load Balancer des Projekts in regelmäßigen Abständen aus dem Load-Balancing-Dienst aus und zeichnet auf, was der Dienst meldet: die Status sowie die Listener, Pools, Mitglieder und Health-Monitore, wie sie dort existieren. Ein Load Balancer, dessen Bereitstellungsstatus ausstehend ist, bleibt unberührt, bis er sich stabilisiert hat.
Zwischen zwei Abfragen zeigt die Spalte Gesundheit den zuletzt aufgezeichneten Status jedes Mitglieds; ein Mitglied, das nicht mehr antwortet, zeigt die Änderung daher nach der nächsten Abfrage. Aktualisieren lädt den Datensatz des Load Balancers neu von der Plattform; die Plattform fragt dadurch den Load-Balancing-Dienst nicht ab.