简介
Keepalived是基于VRRP协议的一款高可用软件.keepalived有一台主服务器和多台备份服务器,主服务器(master)和备份服务器(backup)上部署相同的服务配置,使用一个虚拟IP地址(VIP)对外提供服务,当主服务器出现故障时,虚拟ip地址自动漂移到备份服务器.
VRRP(Virtual Redundancey Protocol 路由器冗余协议)主要由主控路由和备份路由组成,一旦主控路由器不可用,虚拟路由就会启用备份路由,虚拟路由对外表现为一个具有唯一固定的IP地址和MAC地址的逻辑路由器,不改变IP地址,保证网络的畅通,从而实现网络的高可用.
- 具体配置(华为交换机)
interface vlanif 2 //进入vlan2
ip address 192.168.1.1 24 //配置vlan ip
vrrp vrid 1 virtual-ip 192.168.1.254 //VIP
vrrp vrid 1 priority 200 //priority值优先级
配置keepalived+lvs服务器
>准备环境,配置网络环境,配置web服务器,安装http服务,配置真实IP地址后,配置虚拟IP(VIP),具体方法参考如下:
cd /etc/sysconfig/network-scripts/ //网卡接口配置文件路径
cp ifcfg-lo{,:0} //复制配置文件
vim ifcfg-lo:0 //修改,创建虚拟网卡ip,虚拟IP子网掩码必须是32,且广播地址与ip地址一样
DEVICE=lo:0 //设备名
IPADDR=192.168.4.15 //VIP
NETMASK=255.255.255.255 //掩码
NETWORK=192.168.4.15
BROADCAST=192.168.4.15 //广播地址
ONBOOT=yes //开机自起
NAME=lo:0 //网卡名
***********************************************************
web1和web2服务器需配置VIP,proxy服务器不用,由keepalived自动配置
web服务器与调度器VIP一样,默认会出现地址冲突,需进行以下设置
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
#当有arp广播问谁是192.168.4.15时,本机忽略该ARP广播,不做任何回应
#本机不要向外宣告自己的lo回环地址是192.168.4.15
systemctl restart network //重启网络服务,配置生效
systemctl stop firewalld //关闭防火墙
setenforce 0 //关闭selinux
******************************************************
proxy调度服务器安装keepalived与ipvsadm软件包,分别操作proxy1和proxy2
yum -y install keepalived ipvsadm
systemctl enable keepalived
ipvsadm -C //清空所有规则
>配置keepalivedde
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
admin@tarena.com.cn //设置报警收件人邮箱
}
notification_email_from ka@localhost //设置发件人
smtp_server 127.0.0.1 //定义邮件服务器
smtp_connect_timeout 30
router_id lvs1 //设置路由ID号(实验需要修改)
}
vrrp_instance VI_1 {
state MASTER //主服务器为MASTER
interface eth0 //定义网络接口
virtual_router_id 51 //主辅VRID号必须一致
priority 100 //服务器优先级proxy1为100;proxy2为50
advert_int 1
authentication {
auth_type pass
auth_pass 1111 //主辅服务器密码必须一致
}
virtual_ipaddress { //配置VIP(实验需要修改)
192.168.4.15
}
}
virtual_server 192.168.4.15 80 { //设置ipvsadm的VIP规则(实验需要修改)
delay_loop 6
lb_algo rr //设置LVS调度算法为RR
lb_kind DR //设置LVS的模式为DR(实验需要修改)
#persistence_timeout 50 //(实验需要注释)
#注意这样的作用是保持连接,开启后,客户端在一定时间内始终访问相同服务器
protocol TCP
real_server 192.168.4.100 80 { //设置后端web服务器真实IP(实验需要修改)
weight 1 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查(实验需要修改)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.200 80 { //设置后端web服务器真实IP(实验需要修改)
weight 2 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查(实验需要修改)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
systemctl start keepalived //重启服务
ipvsadm -Ln //查看LVS规则
ip a s eth0|网卡 查看VIP设置
iptables -F //清除防火墙规则,每次重启服务都需
>客户端测试
>多次使用curl 命令反复连接http://192.168.4.15,查看访问页面是否会轮询到不同服务器.