In Umgebungen ohne Orchestrator wie Docker Swarm oder Kubernetes stellt sich die Frage, wie Hochverfügbarkeit (High Availability, HA) für Container-Dienste umgesetzt werden kann. Keepalived in Kombination mit VRRP (Virtual Router Redundancy Protocol) ermöglicht es, Failover und Redundanz auf Netzwerkebene zu realisieren. In diesem Artikel werden praxisnahe HA-Patterns vorgestellt, die ohne komplexe Orchestrierung auskommen und trotzdem Ausfälle minimieren.
1. Grundlagen von Keepalived und VRRP
Keepalived ist ein Linux-Dienst, der primär für die Bereitstellung virtueller IP-Adressen und Healthchecks genutzt wird. VRRP erlaubt die Zuweisung einer virtuellen IP an einen primären Host, die bei Ausfall auf einen sekundären Host übertragen wird.
Wichtige Konzepte
- Virtual IP (VIP): IP-Adresse, die Clients verwenden, unabhängig davon, welcher Host aktiv ist.
- Master/Backup: Rollenverteilung innerhalb des VRRP-Clusters.
- Priority: Bestimmt, welcher Host die Master-Rolle übernimmt.
- Advertisements: Regelmäßige Signale, die den Healthstatus zwischen Hosts kommunizieren.
2. Basic HA Pattern
Ein einfaches Setup besteht aus zwei Hosts, die denselben Dienst bereitstellen. Keepalived sorgt dafür, dass die VIP auf den aktiven Master-Host gebunden ist. Fällt der Master aus, übernimmt der Backup-Host die VIP.
Keepalived Konfiguration Beispiel
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass secret
}
virtual_ipaddress {
192.168.1.100
}
}
Auf dem Backup-Host wird der state auf BACKUP gesetzt und die priority auf einen niedrigeren Wert, z. B. 90.
3. Healthchecks integrieren
Keepalived kann Healthchecks durchführen, um sicherzustellen, dass die VIP nur dann auf dem Master-Host verbleibt, wenn der Dienst tatsächlich verfügbar ist.
Beispiel für Healthcheck-Script
vrrp_script chk_web {
script "/usr/local/bin/check_web.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
...
track_script {
chk_web
}
}
Das Script check_web.sh prüft z. B. HTTP-Statuscodes des Container-Dienstes. Bei Fehlern wird das Gewicht reduziert, wodurch der Backup-Host die Master-Rolle übernehmen kann.
4. Layered HA Pattern für Multi-Service Umgebungen
Für Umgebungen mit mehreren Services oder Containern können mehrere Keepalived-Instanzen pro Host eingerichtet werden. Jede Instanz verwaltet eine eigene VIP, wodurch granulare Failover-Steuerung möglich ist.
Beispiel Multi-Service Setup
- Web-Service: VIP 192.168.1.101, eigene Healthchecks.
- API-Service: VIP 192.168.1.102, unabhängige Keepalived-Instanz.
- DB-Service: VIP 192.168.1.103, kritische Priorität auf Master-Host.
5. Split-Brain Vermeidung
Ein häufiger Fehler in HA-Setups ist Split-Brain, wenn beide Hosts gleichzeitig die Master-Rolle annehmen. Maßnahmen zur Vermeidung:
- Reduziertes Advert-Intervall:
advert_int 1für schnelle Erkennung. - Priorität konsistent definieren.
- Quorum-Mechanismen bei mehr als zwei Hosts.
- Optional: Layer-2 / ARP-Filter zur Sicherstellung der VIP-Eindeutigkeit.
6. Integration mit Docker Compose
Keepalived lässt sich auch direkt auf den Host-Systemen betreiben, auf denen Compose-Stacks laufen. VIPs werden auf die Netzwerkschnittstellen der Hosts gebunden und Compose-Container auf diesen Hosts bereitgestellt.
Deployment Tipp
- Compose-Services auf allen HA-Knoten identisch bereitstellen.
- Healthchecks im Compose-File ergänzen, um Failover-Trigger zu ermöglichen.
- VIPs in Docker Compose Netzwerke eintragen oder über
host-Netzwerk verfügbar machen.
7. Monitoring und Logging
Keepalived erzeugt Logs, die für Debugging und Monitoring genutzt werden können. Typische Log-Pfade:
/var/log/messages
/var/log/syslog
Zusätzlich können Alerts bei VIP-Wechseln konfiguriert werden, z. B. via SNMP oder Slack/Webhook-Integration.
8. Best Practices
- Mindestens zwei Hosts für kritische Dienste.
- Healthchecks für jeden Dienst einbinden.
- Prioritäten klar definieren, Master/Backup Rollen testen.
- Split-Brain-Szenarien planen und testen.
- Monitoring und Logging zur schnellen Fehlerdiagnose einrichten.
9. Zusammenfassung
Mit Keepalived und VRRP lassen sich auch ohne Orchestrator robuste HA-Architekturen aufbauen. Durch Kombination von Healthchecks, Prioritäten, Multi-VIP-Instanzen und Monitoring lassen sich Ausfälle minimieren und Services zuverlässig verfügbar halten. Diese Patterns eignen sich insbesondere für kleine Cluster oder Homelab-Umgebungen, in denen ein vollwertiger Orchestrator nicht benötigt wird.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

