====== 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.