1.准备两台linux机器
192.168.199.128
192.168.199.129
2.虚拟ip
192.168.199.200
192.168.199.210
3.两台机器已安装keepalived ipvsdm管理工具(查看负载均衡使用情况)
具体安装见
keepalived安装使用(主从模式)
4.两台机器上修改keepalived配置文件
主从模式:将一台机器配置为主,另一台机器配置为从
主从是为了实现高可用,一台提供服务一台热备机,主机正常运行的情况下备机不提供服务,只有主机挂掉的情况下,备机才会接管虚拟ip;也就是说一般情况下备机的资源没有得到利用,造成资源的浪费;
双主模式:双主意思是两台机器中互为主从,即两台机器任意一台既是主又是从;即要将主从的配置用另一个虚拟ip反过来再配置一组;这样通过两个虚拟ip的访问都是高可用的;但是现在是两个虚拟ip,必须要轮询访问两个虚拟ip才能实现负载均衡;一般利用DNS域名解析进行虚拟ip的负载均衡,即一个域名解析到两个虚拟ip上,当访问域名时,DNS服务器会通过简单的轮询算法将请求负载到两个虚拟ip上;
双主模式keepalived配置
在主从模式配置下加一组配置
192.168.199.128 机器上配置
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.199.200
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52 #和上面那组区分开
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.199.210
}
}
192.168.199.129 机器上配置
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.199.200
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.199.210
}
}
两台机器重启keepalived
service keepalived restart
查看效果
ip a
经检测发现虽然虚拟ip配置漂移成功了,但是虚拟ip还是不能使用(虚拟ip无法ping通)
解决方法:注释掉vrrp_strict
重启keepalived
两台电脑两个虚拟ip都可以ping通
使用虚拟ip访问nginx也可以成功
keepalived日志查看
如果keepalived启动失败可以查看日志排查错误
一般日志文件为/var/log/messages
tail -f -n 50 /var/log/messages