部署keepalived
Keepalived简介
Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管;Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态
VRRP协议与工作原理
在现实的网络环境中。主机之间的通信都是通过配置静态路由或者(默认网关)来完成的,而主机之间的路由器一旦发生故障,通信就会失效,因此这种通信模式当中,路由器就成了一个单点瓶颈,为了解决这个问题,就引入了VRRP协议。
工作原理:
VRRP可以将两台或者多台物理路由器设备虚拟成一个虚拟路由,这个虚拟路由器通过虚拟IP(一个或者多个)对外提供服务,而在虚拟路由器内部十多个物理路由器协同工作,同一时间只有一台物理路由器对外提供服务,这台物理路由设备被成为:主路由器(Master角色),一般情况下Master是由选举算法产生,它拥有对外服务的虚拟IP,提供各种网络功能
四台虚拟机网卡配置:
拓扑图展示:
配置调度机
配置一台新的虚拟机作为调度机1或者2(调度机配置除优先级和主次机名称以外基本相同)
首先我们应当下载ipvsadm:
yum install -y ipvsadm
然后使用命令:modprobe ip_vs导入模块
[root@localhost network-scripts]# modprobe ip_vs
添加vip地址作为调度器地址,并且加入节点服务器的真实ip地址:(注:有需要删除服务节点的话使用命令:ipvsadm -d -r192.168.148.131:80(虚拟ip地址) -t 192.168.148.132(节点服务器地址):80
ipvsadm -A -t 192.168.148.131:80 -s rr #添加vip地址
ipvsadm -a -t 192.168.148.131:80 -r 192.168.148.132 -g -w 1 #只想节点服务器1
ipvsadm -a -t 192.168.148.131:80 -r 192.168.148.133 -g -w 1 #只想节点服务器2
使用ipvsadm命令查看是否添加成功:
修改/etc/sysctl.conf配置文件,在尾部追加命令:
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
并输入sysctl -p来进行验证:
永久保存负载分配策略
使用 导入/导出 工具 ipvsadm-restore(导入) / ipvsadm-save(导出)
ipvsadm-save > /etc/sysconfig/ipvsadm #将策略保存到文件
cat /etc/sysconfig/ipvsadm #查看文件
重启并设置开机自启动:
systemctl enable ipvsadm
systemctl restart ipvsadm
在ipvsadm配好的情况下下载keepalived:
yum install -y keepalived
进入keepalived配置文件进行配置(注意这里两台调度机配置基本相同,不同点:state BACKUP(从) /state MASTER(主)设置主从调度机 priority 100 优先级):
vim /etc/keepalived/keepalived.conf #编辑keepalived配置文件
global_defs {
R2
}
vrrp_instance VI_1 {
state BACKUP #配置主从服务器
interface ens33 #设置网卡型号
virtual_router_id 51
priority 100 #配置优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 123 #设置密码
}
virtual_ipaddress {
192.168.148.131 #设置虚拟地址
}
}
virtual_server 192.168.148.131 80 { #虚拟IP地址(vip),端口
delay_loop 6 #健康检查的间隔时间
lb_algo rr #轮询(rr)调度算法
lb_kind DR #采用的什么群集工作模式 (NAT,DR)
!persistence_timeout 50 #连接保持时间(秒) 若启用请去掉!号
protocol TCP #应用服务采用的TCP协议
real_server 192.168.148.132 80 { #第一个wed服务器节点的ip地址,端口
weight 1 #权重
TCP_CHECK { #健康检查方式
connect_port 80 #检查的端口目标
connect_timeout 3 #连接超时(秒)
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔
}
}
real_server 192.168.148.133 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
到这里调度机ipvsadm和keepalived配置完毕!
配置真实服务器
在这里为了给大家展示,NFS服务器就不进行配置,将网站放入nginx/apache/tomcat服务器中充当NFS配置完成。
配置两台真实服务器的网卡
使用ip a 命令查看双网卡是否配置成功,并重启服务
进入网卡配置文件,配置环回接口,将环回接口文件给复制下来并且命名为ifcfg-lo:0并且进行修改:
cd /etc/sysconfig/network-scripts/ #进入网卡配置
cp ifcfg-lo ifcfg-lo:0 #复制环回接口
vim ifcfg-lo:0 #编辑环回接口
systemctl restart network #重启网卡
2.进入/etc/sysctl.conf文件中在后面追加如下字段:
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.lo.all_ignore=1
net.ipv4.conf.lo.all_announce=2
使用命令sysctl -p 查看是否输入成功:
添加路由器,指明路由方向
route add -host 192.168.148.131 dev lo:0 #指明路由
使用命令route -n 查看
route -n #查看路由
下载nginx/apache/tomcat服务器(这里我使用http演示)
yum install -y httpd
yum安装完的httpd放网站的位置在/var/www/html下:
echo B > /var/www/html/index.html #将内容(A/B)写入html的index.html中
到这里,真实服务器配置完成!
打开浏览器测试。
(清楚浏览器缓存)关闭调度机1网卡再测试,查看调度机2是否接替:
(清楚浏览器缓存)打开调度器1网卡,查看调度机1是否能抢占回来:
在调度机1上输入ipvsadm -ln 查看:
到这里位置说明Keepalived 负载均衡高可用配置成功!