服务器集群
keepalived实现vip漂移
环境俩台sentos7 ip:192.168.0.200 vip:192.168.0.100
192.168.0.201
第一台服务器:
[root@192 ~]# yum -y install httpd
[root@192 ~]# yum -y install keepalived
[root@192 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.100
}
}
virtual_server 192.168.0.100 80 {
delay_loop 6
lb_algo rr
lb_kind NAT
! persistence_timeout 50
protocol TCP
real_server 192.168.0.201 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
第二台服务器
priority real_server state 修改即可
测试
ip a 命令可以查看vip是否漂移 如果正常 将一方keepalived停止 vip就会飘到另一台服务器
[root@192 ~]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:ea:3c:b0 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.201/24 brd 192.168.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.0.100/32 scope global ens33
keepalived不抢占模式
将state全部设置为BACKUP 在这一行下方添加nopreempt一项 重启俩台主机的keepalived服务 就会发现将MASTER结点的keepalived停掉 vip会自动切到BACKUP结点 但是重启MASTER结点的keepalived服务vip不会回到MASTER结点 所以称为不抢占模式
keepalived主要是通过vip的漂移,来实现服务的 主,从的切换 如果仅仅停止下面的服务并不会导致keepalived漂移 下面实现这个问题
第一台
[root@192 ~]#vim /etc/keepalived/keepalived.conf
real_server 192.168.0.200 80 {
weight 1
notify_down /etc/keepalived/httpd.sh
[root@192 ~]# cat /etc/keepalived/httpd.sh
#!/bin/bash
pkill keepalived
[root@192 ~]# cd /etc/keepalived/
[root@192 keepalived]# chmod +x httpd.sh
[root@192 ~]# systemctl restart keepalived
第二台同上修改
这是一个检测脚本,作用是当httpd停止工作时自动关闭本机的keepalived,当httpd正常启动之后,要手动启动keepalived服务。