fix(keepalived): REVERT preempt_delay → nopreempt (Prod-Ausfall 2026-08-03) — v1.3.15
v1.3.9 hatte auf dem PG-Primary (Prio 200) nopreempt durch preempt_delay ersetzt, damit die VIP zum Primary heimwandert. Das reaktivierte GENAU den Fehlermodus, den nopreempt verhindert: der Prio-200-Node holt die VIP zurück, sobald keepalived ihn für gesund hält — aber die Track-Scripts können "gesund" melden, während der Dienst kaputt ist. Am 2026-08-03 entriss so ein halb-kaputtes utm-1 dem funktionierenden utm-2 die VIP (Log: "Master received advert from .6 with higher priority 200 → Entering BACKUP") und hielt sie fest → Ausfall, bis utm-1 hart abgeschaltet wurde. Zurück auf nopreempt (beide Nodes, wie vor v1.3.9). VIP-Affinität zum Primary erst wieder, wenn der Health-Check "Prozess up aber Dienst kaputt" als FAULT erkennt. Bis dahin: Stabilität > Affinität. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -45,9 +45,8 @@ vrrp_instance VI_1 {
|
||||
virtual_router_id {{ .RouterID }}
|
||||
priority {{ .Priority }}
|
||||
advert_int 2
|
||||
{{ if .PreemptDelay }} preempt_delay {{ .PreemptDelay }}
|
||||
{{ else }} nopreempt
|
||||
{{ end }}{{ if .SrcIP }} unicast_src_ip {{ .SrcIP }}
|
||||
nopreempt
|
||||
{{ if .SrcIP }} unicast_src_ip {{ .SrcIP }}
|
||||
unicast_peer {
|
||||
{{ .PeerIP }}
|
||||
}
|
||||
@@ -73,9 +72,8 @@ vrrp_instance VI_HB {
|
||||
virtual_router_id {{ .HBRouterID }}
|
||||
priority {{ .Priority }}
|
||||
advert_int 2
|
||||
{{ if .PreemptDelay }} preempt_delay {{ .PreemptDelay }}
|
||||
{{ else }} nopreempt
|
||||
{{ end }}{{ if .HBSrcIP }} unicast_src_ip {{ .HBSrcIP }}
|
||||
nopreempt
|
||||
{{ if .HBSrcIP }} unicast_src_ip {{ .HBSrcIP }}
|
||||
unicast_peer {
|
||||
{{ .HBPeerIP }}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user