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

[经验分享] LVS+Keepalived负载均衡高可用如此简单?

[复制链接]

尚未签到

发表于 2018-12-29 08:30:14 | 显示全部楼层 |阅读模式
       今天简单写下lvs+keepalive实现负载均衡和高可用的功能,仅供参考!关于它们的详细介绍这里就不描述了,大家可以自行搜索下!
       lvs+keepalived网络拓扑图:
  
  一、准备一个vip和4台虚拟机:
  
vip:192.168.1.100向外提供服务的ip,一般是绑定域名的
192.168.1.10LB1_master调度器IP
192.168.1.13 LB2_slave调度器IP
192.168.1.11nginx服务器IP
192.168.1.12 apache服务器IP
  
  二、安装准备工作
lsmod|grep ip_vs
cat /etc/redhat-release
uname –rm
ln –s /usr/src/kernels/内核版本  /usr/src/linux
ln -s /usr/src/kernels/2.6.32-504.12.2.el6.x86_64/ /usr/src/linux
#若tab没有内核版本号出来,安装kernel-devel
yum install kernel-devel  libnl* popt* –y  #ipvsadm下载地址(注意版本)
  http://www.linuxvirtualserver.org/software/ipvs.html
  #安装LVS命令
tar zxvf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26
make && make install
#将ipvsadm加入内核模块的方法有以下两种
modprobe ip_vs
/sbin/ipvsadm
#查看下是否加载成功,若有以下内容表示安装成功
[root@php ipvsadm-1.26]# lsmod |grep ip_vs
ip_vs                 125694  0
libcrc32c               1246  1 ip_vs
ipv6                  334932  25 ip_vs  三、LB添加LVS转发
  1.如果有域名的话,将域名解析到公网IP
  2.配置LVS虚拟IP,就是我们所谓的VIP

ifconfig eth0:0 192.168.1.100/24 up
route add -host 192.168.1.100 dev eth0  3.检查结果
ifconfig
eth0:0    Link encap:Ethernet  HWaddr 08:00:27:03:F9:0D  
inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  4.配置添加LVS服务并添加RS
    在这里,有必要介绍下添加集群服务的规则:
    格式: ipvsadm -A|E -t|u|f service-address [-s scheduler]
    参数:
  [-p [timeout]] [-M netmask]
  -A:                  表示添加一个新的集群服务(add)
  -E:                  编辑一个集群服务(edit)
  -t:                  表示tcp协议(tcp)
  -u:                  表示udp协议(udp)
  -f:                  表示firewall-Mark,防火墙标记(firewall)
  service-address:     集群服务的IP地址,即VIP
  -s                    指定调度算法
  -p                    持久连接时长,如#ipvsadm -Lcn ,查看持久连接状态
  -M                    定义掩码(netmask)
  ipvsadm -D -t|u|f service-address      删除一个集群服务(delete)
  ipvsadm -C                             清空所有的规则(clean)
  ipvsadm -R                             重新载入规则(reload)
  ipvsadm -S [-n]                        保存规则(save)
  
  
  向集群服务添加RealServer规则:
    添加RealServer规则
    格式:ipvsadm -a|e -t|u|f service-address -r server-address
    参数:
    [-g|i|m] [-w weight]
  -a                 添加一个新的realserver规则
  -e                 编辑realserver规则
  -t                 tcp协议
  -u                 udp协议
  -f                 firewall-Mark,防火墙标记
  service-address    realserver的IP地址(真实服务器的IP)
  -g                表示定义为LVS-DR模型
  -i                 表示定义为LVS-TUN模型
  -m               表示定义为LVS-NAT模型
  -w                定义权重,后面跟具体的权值
  ipvsadm -d -t|u|f service-address -r server-address          --删除一个realserver
  
#设置超时(可选)
ipvsadm --set 30 5 60
#添加一个实例(类似虚拟主机)用-A
ipvsadm -A -t 192.168.1.100:80 -s wrr –p 20
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.11 -g -w 1
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.12 -g -w 1  5.检查结果
ipvsadm -L  四、LB删除LVS方法
#删除virtual server用ipvsadm –D
ipvsadm –D –t 192.168.1.10 –s wrr
#删除节点用ipvsadm -d
ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.12:80  五、RS配置lo,并且绑定vip
ifconfig lo:0 192.168.1.100/32 up
route add –host 192.168.1.100 dev lo   1.RS端抑制arp广播
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  
  六、KeepAlived服务高可用
安装方法一:
yum install openssl* -y
yum install kernel-devel  libnl* popt* –y
ln -s /usr/src/kernels/2.6.32-504.8.1.el6.x86_64/ /usr/src/linux
tar zxvf keepalived-1.1.19.tar.gz
cd keepalived-1.1.19
./configure
make && make install安装方法二:
tar zxvf keepalived-1.1.19.tar.gz
cd keepalived-1.1.19
./configure \
--mandir=/usr/loacl/share/man \
--with-kernel-dir=/usr/src/kernels/2.6.32-504.8.1.el6.x86_64/
make && make install  操作命令:
/bin/cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
/bin/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived –p
/bin/cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
/bin/cp /usr/local/sbin/keepalived /usr/sbin/
/etc/init.d/keepalived start
[root@apache ~]# /etc/init.d/keepalived start
Starting keepalived:                                       [  OK  ]
[root@apache ~]#ps -ef|grep keep
root      2864     1  0 07:58 ?        00:00:00 keepalived -D
root      2866  2864  0 07:58 ?        00:00:00 keepalived -D
root      2867  2864  0 07:58 ?        00:00:00 keepalived -D
root      2871  1101  0 07:58 pts/0    00:00:00 grep keep
[root@apache ~]# /etc/init.d/keepalived stop  =è成功后停止keepalived服务
Stopping keepalived:                                       [  OK  ]  七、在主(master)keepalived配置keepalived.conf配置文件
! Configuration File for keepalived
global_defs {
   notification_email {
   291406980@qq.com
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 10.0.0.1
   smtp_connect_timeout 30
   router_id LVS_7
}
vrrp_instance VI_1 {
    state MASTER  #因为这里是主,所以选用MASTER                    
    interface eth0
    virtual_router_id 55
    priority 150  #这个值一定要比从(slave)的大
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24  #vip
    }
}  八、在从(slave)的keepalived配置keepalived.conf文件
! Configuration File for keepalived
global_defs {
   notification_email {
   291406980@qq.com
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 10.0.0.1
   smtp_connect_timeout 30
   router_id LVS_2
}
vrrp_instance VI_1 {
    state BACKUP     #这里是从(slave),选用BACKUP
    interface eth0
    virtual_router_id 55
    priority 100     #这个值小于主(master)的150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24  #vip
    }
}   九、最后主从都需重启keepalived
/etc/init.d/keepalived start  我这里分别是两个站点:apache和nginx!在输入192.168.1.100这个vip的时候,会调度到不同的站点上面!以下是截图:


  十、LVS集群分发请求RS负载不均的问题
  主要有以下几点:
    1.会话保持的原因,尽量不要在负载均衡器上做会话保持
    2.LVS自身的会话保持参数设置问题,要优化,尽量用cookies或者session替代
    3.LVS调度算法设置问题,例如rr wrr wlc lc 算法
    4.后端RS节点的会话保持参数,例如apache的keealive参数
    5.访问量少的情况,不均衡的现象比较明显
    6.用户发送的请求时间长短,和请求资源多少有关




运维网声明 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-657035-1-1.html 上篇帖子: 使用haproxy+keepalived来实现mariadb galera cluster的高可用架构 下篇帖子: 高可用解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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