ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
### **0、准备工作** 准备三台主机,比如如下 A主机:192.168.1.10 B主机:192.168.1.11 C主机:192.168.1.12 准备一个vip,注意不要被其他主机占用,而且要与上面三个IP在同一子网内,比如为 192.168.1.20 ### **1、安装** 在三台主机上都安装keepalived,执行以下命令即可安装 ``` sudo yum -y install keepalived ``` ### **2、配置文件** keepalived有两个配置文件,一个是/etc/sysconfig/keepalived,一个是/etc/keepalived/keepalived.conf * /etc/sysconfig/keepalived 该文件中的有效内容只有一行,三个节点上这个文件的内容一样。为 ``` KEEPALIVED_OPTIONS="-D" ``` * /etc/keepalived/keepalived.conf 这个文件在三台主机上的配置会不一样 > A主机 ``` global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state MASTER # B C 主机设为BACKUP interface eth0 # IP对应的网卡 virtual_router_id 20 # 三台主机这个id要一致,如果局域网内还有其他的vip,注意这个值要与其他vip不同 priority 100 # MASTER设100,BACKUP设99 advert_int 1 # nopreempt # 非抢占模式,Master-Backup该配置无效 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.20/24 dev eth0 label eth0:20 # vip } } ``` > B C主机相同,如下 ``` global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state BACKUP # B C 主机设为BACKUP interface eth0 # IP对应的网卡 virtual_router_id 20 # 三台主机这个id要一致 priority 99 # MASTER设100,BACKUP设99 advert_int 1 # nopreempt # 非抢占模式,Master-Backup该配置无效 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.20/24 dev eth0 label eth0:20 # vip } } ``` ### **3、unit文件** * /usr/lib/systemd/system/keepalived.service 三台主机的内容一样,如下: ``` [Unit] Description=LVS and VRRP High Availability Monitor After=syslog.target network.target [Service] Type=forking KillMode=process EnvironmentFile=-/etc/sysconfig/keepalived ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target ``` ### **4、将keepalived设置为开机启动** ``` sudo systemctl enable keepalived ``` ### **附录** ##### **Master-Backup与Backup-Backup模式** keepalived有两种模式:Master-Backup与Backup-Backup,在上面的教程中,我们使用的是Master-Bakcup模式。如果要使用Backkup-Bakcup模式,那么每台主机上,state都要设置为`BACKUP`且priority的值也要一样。这两种模式的区别如下: * Master-Bakcup:当Master节点正常时,VIP永远绑定在Master节点上;当Master节点挂掉后,VIP漂移到某个Backup节点上;当Master重新恢复正常后,VIP又会漂移回Master节点 * Backup-Bakcup:当VIP所在节点A挂掉后, VIP会漂移到另一个节点;当A节点恢复后,VIP不会再漂移回A节点(设置了非抢占) 参考 https://blog.csdn.net/chengxuyuanyonghu/article/details/83539966