实验环境
在上文中搭建完的DR模型基础上进行搭建基于keepalived的高可用环境。
回顾下上次搭建的server1和server2的配置:
首先将arp_ignore和arp_announce分别置为1和2,然后在环回接口上配置了子接口
其ip地址为192.168.247.100,子网掩码为255.255.255.255,也就是VIP地址。
本文在server1和server2的基础上搭建基于keepalived的高可用的负载均衡服务器,使用主从模型实现负载均衡服务器的高可用。
实验步骤
1、首先得初始化lvs的配置:
ipvsadm -C
ifconfig ens33:8 down
2、server1和server2的配置不变。为了实现lvs的高可用,需要开启第4台主机lvs2。并且在lvs和lvs2上都得安装keepalived。
yum install keepalived ipvsadm -y
3、在lvs上进行配置keepalived
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vi keepalived.conf
配置文件修改如下:
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.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.247.100/24 dev ens33 label ens33:8
}
}
virtual_server 192.168.247.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.247.131 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.247.132 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
4、然后进行lvs2的配置
首先在lvs上讲该配置文件拷贝到lvs2上
scp ./keepalived.conf root@192.168.247.133:`pwd`
然后再修改该配置文件:
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.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 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.247.100/24 dev ens33 label ens33:8
}
}
virtual_server 192.168.247.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.247.131 80 {
weight 1
HTTP_GET {
url {
path /index.html
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.247.132 80 {
weight 1
HTTP_GET {
url {
path /index.html
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
5、在lvs和lvs2上输入ifconfig命令分别得到如下信息
可以看到只有lvs,也就是MASTER上才会配置vip地址,而在从机上是没有的。
但是输入ipvsadm -ln可以发现主机和从机挂载的服务器是一样的。这是因为主机宕机后,从机充当主机的角色,也得拥有和主机相同的服务器信息,这样才能保证高可用。
6、启动lvs和lvs2上的keepalived服务:
systemctl start keepalived.service
7、在浏览器中输入192.168.247.100将会看到如下页面:
如果我们现在停用lvs的keepalived服务:
systemctl stop keepalived.service
会发现在lvs2上启用ens33:8的地址,并且自动成为主机,对于客户端的访问没有任何影响。
同时如果重新启动lvs主机的话,MASTER会重新被lvs所抢占。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。