设为首页 收藏本站
查看: 986|回复: 0

[经验分享] keepalived+lvs 高可用

[复制链接]

尚未签到

发表于 2018-12-28 12:03:36 | 显示全部楼层 |阅读模式
地址规划情况:


主Director Servereth0    192.168.1.175
eth1    10.10.10.1
eth0:0  192.168.1.54


备Director Servereth0    192.168.1.129
eth1    10.10.10.2
eth0:0  192.168.1.54


Real server1eth0192.168.1.220
lo192.168.1.54


Real server1eth0192.168.1.130
lo192.168.1.54




查看内核是否已经支持LVS的IPVS模块


[root@localhost network-scripts]# modprobe -l | grep ipvs
kernel/net/netfilter/ipvs/ip_vs.ko
kernel/net/netfilter/ipvs/ip_vs_rr.ko
kernel/net/netfilter/ipvs/ip_vs_wrr.ko
kernel/net/netfilter/ipvs/ip_vs_lc.ko
kernel/net/netfilter/ipvs/ip_vs_wlc.ko
kernel/net/netfilter/ipvs/ip_vs_lblc.ko
kernel/net/netfilter/ipvs/ip_vs_lblcr.ko
kernel/net/netfilter/ipvs/ip_vs_dh.ko
kernel/net/netfilter/ipvs/ip_vs_sh.ko
kernel/net/netfilter/ipvs/ip_vs_sed.ko
kernel/net/netfilter/ipvs/ip_vs_nq.ko
kernel/net/netfilter/ipvs/ip_vs_ftp.ko


如果输出上面的内容,表明系统内核支持IPVS模块


yum install ipvsadm-1.25-10.el6.x86_64 -y


ipvsadm --help
有帮助信息输出说明安装成功


tar zxvf keepalived-1.2.3.tar.gz
cd keepalived-1.2.3
./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-279.5.2.el6.x86_64/ #--sysconf指定配置文件的安装路径即/etc/keepalived/keepalived.conf.--with-kernel-dir指定使用内核源码中的头文件。
make
make install
ln -s /usr/local/sbin/keepalived /sbin/
keepalived --help
有帮助信息输出说明安装成功


修改配置文件


rm -rf /etc/keepalived/keepalived.conf


vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
xxxxxxxx@139.com#监控到Real server无法工作是报警的邮箱,可以设备多个,每行一个。注意如果要开启邮件报警,需要开启本机的SMTP服务。
   }
   notification_email_from root@localhost#设置邮件的发送地址
   smtp_server 127.0.0.1 #设置SMTP SERVER地址
   smtp_connect_timeout 30#设置连接SMTP SERVER的超时时间
   router_id LVS_DEVEL#表示Keepalived服务的一个标识,发邮件时显示在邮件主题中的信息。
}


vrrp_instance VI_1 {
    state MASTER#指定Keepalived的角色,MASTER表示此主机是主服务器 BACKUP表示此主机是备用服务器,所以设置时注意
    interface eth1#指定HA监测网络的接口
    virtual_router_id 51#虚拟路由标识,同一个vrrp实例使用唯一的标识,同一个vrrp_instance下,MASTER和BACKUP必须一致。
    priority 80#定义优先级,数字越大,优先级越高。在一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级
    advert_int 1#设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
    authentication {
        auth_type PASS#设置验证类型,主要有PASS和AH两种
        auth_pass 1111#设置验证密码,同一个vrrp_instance下,MASTER和BACKUP的密码必须一致才能正常通信
    }
    virtual_ipaddress {#设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
        192.168.1.54
    }
}


virtual_server 192.168.1.54 80 {#设置虚拟服务器,需要指定虚拟IP地址和服务端口,IP与端口之间用空格隔开
    delay_loop 6#设置运行情况检查时间,单位是秒
    lb_algo wlc#设置负载调试算法,这里设置为wlc即最少链接算法
    lb_kind DR#设置LVS实现负载均衡的机制,有NAT,TUN和DR三个模式可选
    persistence_timeout 50#设置会话保持时间,单位是秒
    protocol TCP#指定转发协议类型,有TCP和UDP两种


    real_server 192.168.1.220 80 {#配置服务节点1,需要指定real server的真实IP地址和端口
        weight 1#配置服务节点的权值,权值大小用数字表示,数字越大,权值超高。可以为性能高的服务器设置较高的权值,合理地利用和分配系统资源
TCP_CHECK {
            connect_timeout 3#表示3秒无响应超时
            nb_get_retry 3#表示重试次数
            delay_before_retry 3#表示重试间隔
        }
   }
real_server 192.168.1.130 80 {#配置服务节点2
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }  
}


启动服务
service keepalived stop
查看keepalived的进程


[root@localhost ~]# ps -ef | grep keepalived
root     29329     1  0 05:09 ?        00:00:00 keepalived -D
root     29331 29329  0 05:09 ?        00:00:00 keepalived -D
root     29332 29329  0 05:09 ?        00:00:00 keepalived -D
说明服务正常启动






配置real server


安装web服务
yum install httpd
service httpd start
netstat -tnulp


编写增加VIP地址的脚本
#!/bin/bash   
SNS_VIP=192.168.1.54  
   
. /etc/rc.d/init.d/functions  
   
case "$1" in  
start)  
        ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP  
        /sbin/route add -host $SNS_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  
        sysctl -p >/dev/null 2>&1  
        echo "RealServer Start OK"  
   
        ;;  
stop)  
        ifconfig lo:0 down  
        route del $SNS_VIP >/dev/null 2>&1  
        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce  
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore  
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce  
        echo "RealServer Stoped"  
        ;;  
*)  
        echo "Usage: $0 {start|stop}"  
        exit 1  
esac  
   
exit 0  


cp lvsrs /etc/init.d/lvsrs
chmod 755 /etc/init.d/lvsrs#修改lvsrs使其具有可执行权限
service lvsrs start/stop#关闭和启动lvsrs


在主Director Server里查看
[root@localhost ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.54:http rr persistent 50
  -> 192.168.1.130:http           Route   1      0          0         
  -> 192.168.1.220:http           Route   1      0          0  


说明服务已经启动正常可以


在real server1中添加网页
echo "this is real server1" > /var/www/html/index.html


在real server2中添加网页
echo "this is real server2" > /var/www/html/index.html


在PC电脑上通过浏览器查看http://192.168.1.54是否能访问到页面


关闭192.168.1.130的web服务查看主Director Server的日志是否有邮件发出


Aug 31 05:38:26 localhost Keepalived_healthcheckers: TCP connection to [192.168.1.130]:80 success.
Aug 31 05:38:26 localhost Keepalived_healthcheckers: Adding service [192.168.1.130]:80 to VS [192.168.1.54]:80
Aug 31 05:38:26 localhost Keepalived_healthcheckers: Remote SMTP server [127.0.0.1]:25 connected.
Aug 31 05:38:26 localhost Keepalived_healthcheckers: SMTP alert successfully sent.
查看你的邮箱是否收到邮件


查看LVS是否把有故障的Real server从列表中踢出
[root@localhost ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.54:http rr persistent 50
  -> 192.168.1.220:http           Route   1      0          0
说明已经踢出


开启192.168.1.130的web服务查看主Director Server的日志是否有邮件发出
Aug 31 05:09:56 localhost Keepalived_healthcheckers: TCP connection to [192.168.1.130]:80 failed !!!
Aug 31 05:09:56 localhost Keepalived_healthcheckers: Removing service [192.168.1.130]:80 from VS [192.168.1.54]:80
Aug 31 05:09:56 localhost Keepalived_healthcheckers: Remote SMTP server [127.0.0.1]:25 connected.
Aug 31 05:09:56 localhost Keepalived_healthcheckers: SMTP alert successfully sent.
查看你的邮箱是否收到邮件
查看LVS是否又把恢复的Real server添加到列表中
[root@localhost ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.54:http rr persistent 50
  -> 192.168.1.130:http           Route   1      0          0         
  -> 192.168.1.220:http           Route   1      0          0  
说明已经添加


在主Director Server中关闭keepalived服务
service keepalived stop
查备Director Server的日志
tail -f /var/log/messages
查看Director Server是否发生切换
在PC电脑上通过浏览器查看http://192.168.1.54是否能访问到页面看是否正常


如果正常在主Director Server中开启keepalived服务
service keepalived start
查备Director Server的日志
tail -f /var/log/messages
查看Director Server是否发生切换
在PC电脑上通过浏览器查看http://192.168.1.54是否能访问到页面看是否正常






LVS+keepalived完毕
















运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-656859-1-1.html 上篇帖子: keepalived知识梳理 下篇帖子: Keepalived+Tengine实现高可用集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表