keepalived + vLAN + Failover IP

  • Hallo,


    ich habe auf mehreren VPS auf dem vLAN einen keepalived aufgesetzt, um einen Dienst hochverfügbar aufzusetzen. Der Master fährt auf dem Public Netzwerkdevice Failover IPs hoch und ruft dann ein Python Script auf, dass via API die Failover IPs auf den Server umleitet. Diese API Aufrufe dauern eine Weile (oft 1-2 Minuten). Es kommt nun immer wieder vor, dass die Failover IPs nicht erreichbar werden, weil die Dienste zu schnell zwischen den VPS umgeschaltet werden und das Check Script in der Zeit den Dienst down sieht. Dann denkt der andere Node, dass er wieder übernehmen muss.


    Hatte jemand schonmal ähnliche Probleme und einen Hinweis wie man das Problem umgehen kann?

  • Hier kamen mehrere Probleme zusammen. Ich habe Checks auf die Cluster IPs gemacht. Da die Umschaltung über die API aber so lange dauert, ist die IP immer wieder zwischen den Servern hin und her gesprungen. Die Server haben sich die IPs immer wieder gegenseitig weg genommen. Also habe ich nur noch die Dienste geprüft und keepalived die IPs managen lassen. Das Notify Script habe ich angepasst, dass es nur noch einmal parallel laufen kann. Damit konnte es dann auch per Cron gestartet werden und schwenkt die IPs, falls der erste Versuch durch keepalived mal schief ging. So scheint das Problem gelöst zu sein.

  • Ich verwende keine Failover IP nur DNS-Loadbalancing, was aber seit Jahren ohne Proleme läuft, wenn ein (Web-) Server wirklich nicht erreichbar ist, bekommen die Nameserver dies über einen Check mit und deaktivieren diesen ersteinmal im DNS, da für diese Records eine kurze TTL gewählt wurde ist es schneller als ein 5min Timeout von einem keepalived. :D


    Die Checks laufen aktuell auch direkt auf den Nameservern, hab noch nicht darüber nachgedacht ob das Clever ist oder nicht.