feat(keepalived): VIP wandert zum PG-Primary zurück (preempt_delay) — v1.3.9

Bisher trugen beide VRRP-Instanzen `nopreempt` → ein erholter Primary holte die
VIP NICHT zurück; nach einem Deploy-/VM-Blip blieb sie auf dem Standby kleben
(genau die Situation: VIP auf utm-2 obwohl utm-1 der PG-Primary ist).

Jetzt: der bevorzugte Node (PG-Primary, Prio 200) rendert `preempt_delay 120`
statt nopreempt → er holt die VIP nach 120s STABILER Erholung heim. Der Standby
(Prio 100) behält nopreempt (reißt die VIP nie an sich → Split-Brain-Schutz).
Der 120s-Delay + gw-check + Heartbeat-Sync-Group verhindern Flap-Back bei kurzen
Hicks. State bleibt immer BACKUP.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Debian
2026-07-31 17:56:53 +02:00
parent 4856779db8
commit 18ee243a44
4 changed files with 68 additions and 25 deletions

View File

@@ -45,8 +45,9 @@ vrrp_instance VI_1 {
virtual_router_id {{ .RouterID }}
priority {{ .Priority }}
advert_int 2
nopreempt
{{ if .SrcIP }} unicast_src_ip {{ .SrcIP }}
{{ if .PreemptDelay }} preempt_delay {{ .PreemptDelay }}
{{ else }} nopreempt
{{ end }}{{ if .SrcIP }} unicast_src_ip {{ .SrcIP }}
unicast_peer {
{{ .PeerIP }}
}
@@ -72,8 +73,9 @@ vrrp_instance VI_HB {
virtual_router_id {{ .HBRouterID }}
priority {{ .Priority }}
advert_int 2
nopreempt
{{ if .HBSrcIP }} unicast_src_ip {{ .HBSrcIP }}
{{ if .PreemptDelay }} preempt_delay {{ .PreemptDelay }}
{{ else }} nopreempt
{{ end }}{{ if .HBSrcIP }} unicast_src_ip {{ .HBSrcIP }}
unicast_peer {
{{ .HBPeerIP }}
}