keepalived+LVS实现LVS的高可用
1、实验环境
共需要五台虚拟机:
虚拟机1,虚拟机2:安装nginx.。
使用nginx的web服务器功能,作为真正的web服务器提供服务。
虚拟机3,虚拟机4:安装LVS和keepalived。
作用有两个:1、使用LVS作为负载均衡服务器转发用户请求到真实服务器中。2、安装keepalived实现负载均衡的高可用,虚拟机3作为lvs-master,虚拟机4作为lvs-backup。
虚拟机5:作为客户端,用于集群的测试,无需任何配置。
2、web服务器搭建
为了省时间,直接在nginx默认发布目录/usr/share/nginx/html/index.htm中写入测试内容,没有重新编写配置文件。
虚拟机1进行如下操作:
安装并开启nginx,并在nginx默认发布目录中写入测试内容
[root@web-1 ~]# yum -y install nginx
[root@web-1 ~]# systemctl start nginx
[root@web-1 ~]# echo web-1 > /usr/share/nginx/html/index.html
虚拟机2进行如下操作:
同虚拟机1 的操作一样
[root@web-2 ~]# yum -y install nginx
[root@web-2 ~]# systemctl start nginx
[root@web-2 ~]# echo web-2 > /usr/share/nginx/html/index.html
虚拟机5进行如下操作
验证两台web服务器是否搭建好
3、LVS服务器搭建
虚拟机3和虚拟机4均完成如下操作:
[root@lvs-master ~]# yum -y install ipvsadm keepalived
[root@lvs-master ~]# ip a a dev ens33 192.168.58.140/32
[root@lvs-master ~]# ipvsadm -S > /etc/sysconfig/ipvsadm
[root@lvs-master~]# systemctl start ipvsadm
[root@lvs-master ~]# ipvsadm -A -t 192.168.58.140:80 -s rr
[root@lvs-master ~]# ipvsadm -a -t 192.168.58.140:80 -r 192.168.58.155:80 -g
[root@lvs-master ~]# ipvsadm -a -t 192.168.58.140:80 -r 192.168.58.162:80 -g
虚拟机1和虚拟机2完成如下操作:
[root@web-1 ~]# ip a a dev lo 192.168.58.140/32
[root@web-1 ~]# vim /etc/sysctl.conf
[root@web-1 ~]# sysctl -p
[root@web-1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
至此,lvs搭建成功
虚拟机5验证LVS
4、Keepalived实现LVS高可用的配置
虚拟机3的操作:
[root@lvs-master ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
[root@lvs-master ~]# vim /etc/keepalived/keepalived.conf
配置文件内容如下:
! Configuration File for keepalived
global_defs {
router_id lvs-keepalived-master
}
vrrp_instance VI_1 {
state MASTER
interface ens33 #VIP绑定接口
virtual_router_id 80 #VRID 同一组集群,主备一致
priority 100 #本节点优先级,backup优先级要小于master
advert_int 1 #检查间隔,默认为1s
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.58.140/24 #vip
}
}
virtual_server 192.168.58.140 80 {
#LVS配置
delay_loop 3
lb_algo rr #LVS调度算法
lb_kind DR #LVS集群模式(路由模式)
nat_mask 255.255.255.0
protocol TCP #健康检查使用的协议
real_server 192.168.58.155 80 {
weight 1
inhibit_on_failure #当该节点失败时,把权重设置为0,而不是从IPVS中删除
TCP_CHECK {
#健康检查
connect_port 80 #检查的端口
connect_timeout 3 #连接超时的时间
}
}
real_server 192.168.58.162 80 {
weight 1
inhibit_on_failure
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
}
虚拟机4的操作:
[root@lvs-backup ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
[root@lvs-backup ~]# vim /etc/keepalived/keepalived.conf
配置文件内容与虚拟机3大致相同,红框内为区别,配置如下:
虚拟机3和虚拟机4都开启keepalived
[root@lvs-master ~]# systemctl start keepalived
ip a
查看vip,vip存在于master服务器中
虚拟机5验证:
访问成功,LVS高可用配置成功
6、高可用验证
虚拟机3关闭keepalived,模拟keepalived宕机
虚拟机5仍能访问,证明LVS的keepailved高可用部署成功