Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:docker:keepalived:start

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 hiereine 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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.

projekte/docker/keepalived/start.txt · Zuletzt geändert: 2022/11/14 18:16 von admin