Haproxy Regel Missachtung bei neustart

chonta
Goto Top
Hallo,

ich weiß nicht genau ob das Unterforum richtig gewählt ist aber es geht um Server und Internet im weiteren Sinne.
Betroffen Versionen von HA-Proxy 1.5.8 (Debian 7) und 1.5.12 (Ubuntu 14.04).

Ziel ist es mittels HAproxy den aktuellen Redis-Master durch Abfrage der Redis-Sentinels zu ermitteln und so den Master immer für alle Anwendungen bereit stellen zu können (wenn diese nicht nativ mit sentinel zusammenarbeiten).
Die Webanwendungen verbinden sich mit dem HA-Proxy und diser gibt die Anfrage dan per Regelwerk weiter.

Hier der entsprechende Configeintrag.


Jetzt das Problem:
IMMER wenn der Haproxy neu gestartet oder neu geladen wird, sind die Regeln schnuppe!
Bis zum ersten Aplauf des Checkintervalls vermittelt der HAproxy einfach die erste Server IP, egal ob es der aktuelle Master ist oder nicht!
Und das ist ein Problem.
Die Regel funktoniert soweit, immer wenn der Master weg bricht und die Sentinels einen neuen wählen, leitet der HAproxy nirgendwo hin, ist der neue Master bestimmt gibt der HAproxy auch nur diesen weiter.
ABER wird der HAproxy neu gestartet nimmt er immer die erste IP im Beispiel 10.100.7.143, egal ob es der Slave ist oder nicht!

Kennt jemand das Problem und weiß wie man das umgehen kann?

Die Verwendung der Server use_backend und entsprechenden Backends habe ich auch schon getestet.

Gruß

Chonta

Nachtrag: Lösung gefunden.
Folgender Eintrag musste noch in der Konfiguration hinzugefügt werden. Konfig angepasst.
tcp-request connection reject if { nbsrv(check_master_redisA) ge 2 } { nbsrv(check_master_redisB) ge 2 }

Content-Key: 273775

Url: https://administrator.de/contentid/273775

Ausgedruckt am: 19.08.2022 um 10:08 Uhr