一,keepalived是做什么的
keepalived是专门用来监控集群系统中各个服务节点的状态,如果集群系统中某个节点出现了故障,keepalived会自动检测到,并自动将出现故障的服务节点从集群系统中去除,从而保持你的服务可以靠其他无故障的服务节点正常保持运行状态,这些工作都可以使用keepalived自动完成,而人工只需要修复出现故障的服务节点。
Keepalived又引入了VRRP的功能(虚拟路由冗余协议),他的目的是解决静态路由出现单点故障的问题,通过VRRP实现网络不间断的稳定提供服务
二,VRRP协议
目前客户机访问服务的过程都是通过配置静态路由或者默认网关找到所需服务的前端路由器,通过前端的路由器转发到真实的集群服务某个节点中,所以,一但和主机之间的路由器发生了故障,客户机就会无法访问服务,这种通信模式就相当于一个单点瓶颈,为了解决单点堵塞的问题,引入了VRRP的协议。
VRRP协议是一种容错主备模式协议,他的作用就是当客户机的下一跳路由出现故障时,由另一台完好的路由来接替工作,通过这种方式保持服务一直提供,而客户机并不会感受到任何问题。
三,具体配置方法
下面我将演示两台路由器的实现过程,
两台路由器将共用一个vip(虚拟ip)
- 拓扑图
- 双前安装keepalived和ipvsadm
yum -y install ipvsadm keepalived
2,双后安装httpd服务,并配置两个主页通过本机测试访问
yum -y install httpd
编辑简单网页内容,纯纯为了效果
s2也一样配置简单网页内容
测试访问
3,双前开firewall80端口,关闭selinux
s1开启并重新加载,关闭selinux
s2开启并重新加载,关闭selinux
4,编辑配置文件
因为配置文件过于重要,为避免出现错误做一个备份
global_defs { notification_email { root@localhost } notification_email_from root@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node1.zhang.com } vrrp_instance websrv { state Master interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.100.250 } } virtual_server 192.168.100.250 80 { delay_loop 3 <==轮询时间间隔,单位s lvs_sched rr <==指定LVS算法 lvs_method DR <==指定LVS模式 protocol TCP<==指定协议类型 real_server 192.168.100.11 80 { <==real-server的IP及端口 weight 1HTTP_GET { url { path / <==检查根目录 status_code 200 <==响应代码为200为健康.real-server为存活状态 } connect_timeout 3 <==连接real-server超时时间,单位s } } real_server 192.168.100.22 80 { weight 1HTTP_GET { url { path / status_code 200 } connect_timeout 3 } } }
5,双前重启keepalived和ipvsadm服务
6,双后配置DR直连路由的vip,脚本方式
赋予执行权限
chmod 700 lvs-re
al-dr.sh
脚本内容,附上源码
#! /bin/bash VIP=192.168.100.250 ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /sbin/route add -host $VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
7,双后开firewall80端口,关闭selinux,关闭sel
8,windows段访问测试
9,将r2关机模仿故障再次访问成功
机