====== Installation keepalived ======
keepalived sorgt fuer ein Failover einer virtuellen IP-Adresse so das dies als Grundlage einer Erreichbarkeit einiger Container unter nur einer IP-Adresse dienen kann. Dazu habe ich Keeepalived auf den beiden ersten Manager Knoten (dockerman01 und dockerman02) installiert.
Die Installation ist reaktiv einfach da man keepalived in den Standard-Repositories findet:
apt install keepalived
Dann muss noch die keepalived Konfigurationsdatei gepflegt werden. Die wichtigen Stellen sind hierbei
* state (MASTER oder BACKUP, je nachdem wer der "Chef" der Server sein soll)
* interface (Da muss das Netzwerkinterface eingetragen werden welches die IP-Adresse bekommen soll, normalerweise "eth0" oder so was)
* virtual_router_id (Eine Nummerierung bzw. Name des keepalived Verbundes, muss gleich sein auf alles keeplived Servern)
* priority (Definiert wer prioritätsmässig normalerweise die IP-Adresse bekommt)
* auth_pass (Authrentifizierung für andere keepalived Instanzen, dieses Passwort muss auch auf allen gleich sein)
* virtual_ip_address (Die IP-Adresse(n) die aktiviert werden soll und über die nachher zugegriffen werden soll, darf es natürlich nicht vorher geben)
* OPTIONAL: notifiy (Hier kann man ein Skript angeben welches bei einem Neustart, Fehler, Schwenk etc der IP-Adresse aufgerufen wird.
Zu keepalived und den anderen Optionen findet man [[https://keepalived.readthedocs.io/en/latest/index.html|hier]]eine erschöpfende Dokumentation.
Zur Zeit läuft bei mir diese Konfiguration (Mindestens auth_pass und interface anpassen!!!):
Konfiguration auf dockerman01 (/etc/keealived/keepalived.conf)
global_defs {
script_user root
enable_script_security
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 61
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass MEINPASSWORT
}
virtual_ipaddress {
172.17.200.24/23
172.17.200.25/23
}
# notify /root/cluster.sh
}
Konfiguration auf dockerman02 (/etc/keealived/keepalived.conf)
global_defs {
script_user root
enable_script_security
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 61
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass AUCHMEINPASSWORT
}
virtual_ipaddress {
172.17.200.24/23
172.17.200.25/23
}
# notify /root/cluster.sh
}
Danach noch den Start bei Systemstart einrichten (Auf beiden PIs):
systemctl enable keepalived
systemctl start keepalived
Jetzt sollte man auf dem MASTER die IP-Adresse sehen können:
ip addr
2: eth0: mtu 1500 qdisc mq state UP group default qlen 1000
link/ether dc:a6:32:51:3f:e0 brd ff:ff:ff:ff:ff:ff
inet 172.17.200.77/23 brd 172.17.201.255 scope global dynamic noprefixroute eth0
valid_lft 862186sec preferred_lft 754186sec
inet 172.17.200.24/23 scope global secondary eth0
valid_lft forever preferred_lft forever
inet 172.17.200.25/23 scope global secondary eth0
valid_lft forever preferred_lft forever
Testen kann man jetzt noch das die auch auf dem zweiuten PI übernommen wird indem man Nummer 1 abschaltet oder neu startet. Wenn man neu startet muss man allerdings schnell sein sonst wandert die IP wieder zurück auf den ersten PI da dieser die höhere Priorität hat.