Guten Morgen Bitmuncher,
erstmal vielen Dank für deine Antwort.
Nur damit ich dich jetzt richtig verstehe: Du würdest supervisord benutzen um Systemdienste zu monitoren und ggf. starten zu lassen?
Ich weiß jetzt nicht, ob dass das gleiche Szenario ist was ich machen möchte. Daher frage ich noch mal lieber nach.
Für den HA Cluster möchte ich ein Regelwerk festlegen, nach dem die Backup-Nodes für den Master-Node einspringen. Bei mir fungiert der Nginx nur als Reverse Proxy Server, der Requests entgegen nimmt und intern an eine ASP.NET Core Applikation über einen anderen Port auf dem localhost weiterleitet. Was ich vermeiden möchte ist, dass ein Node des HA Clusters Requests entgegen nimmt, die dann ggf. Aufgrund der nicht laufenden Applikation hinter dem Webserver verworfen werden.
Bei mir sieht es so aus:
Request an floating IP -> Zuteilung an Backup oder Master Node -> Nginx (Reverse Proxy) -> ASP.NET Core Applikation -> weiterer von der Applikation genutzter Dienst.
Die ganze Kette muss laufen, damit der Node und damit die Applikation lauffähig ist. Momentan funktioniert mein HA nur, wen der Server "physikalisch" ausfällt, nicht aber, wenn die Applikation gar nicht läuft. In dem Fall nimmt der Nginx Reverse Proxy weiterhin Anfragen entgegen und schaltet nicht auf den Backup-Node um.
Wenn ich das richtig verstehe, würde ich erstmal dieses Regelwerk in keepalived implementieren, damit der HA richtig läuft, und dann supervisord on top einsetzen, um Ausfallzeiten durch abgestürzte Services zu minimieren.
Siehst du das auch so?
Ich dank dir!