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

[经验分享] Keepalived + LVS 高可用负载均衡集群部署

[复制链接]

尚未签到

发表于 2018-12-31 11:41:32 | 显示全部楼层 |阅读模式
  Keepalived(高可用)
        通过在两台主、备调度器上实现Keepalived高可用解决调度器单点失败问题
        主、备调度器上配置LVS,正常情况下主调度器工作
        主调度器异常时,Keepalived启用备用调度器,保证了调度器的高可用
        调度器保证了后台服务的高可用
        

  IP地址分配:
  Web1:        192.168.10.20      ifcfg-lo:0   192.168.10.50
  Web2:        192.168.10.22      ifcfg-lo:0   192.168.10.50
  Client:       192.168.10.40
  LVS+Keepalived主调度器: 192.168.10.10
  LVS+Keepalived调度器: 192.168.10.11
  * LVS+Keepalived服务器上可以配置多个VIP虚拟IP,每个虚拟IP对应一个服务
   如 200.1.1.10 httpd 服务的虚拟IP
      200.1.1.20 是邮件服务的虚拟IP
  * 在LVS+Keepalived服务器上不配置eth0:0  只在真实WEB服务器上配置lo:0
  一、两台调度器都安装keepalived
  # yum install -y gcc gcc-c++ kernel-devel openssl-devel popt-devel
  # tar xvzf keepalived-1.2.7.tar.gz -C /usr/src/
  # cd /usr/src/keepalived-1.2.7/
  # uname -r
  2.6.32-358.el6.x86_64
  #./configure  --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-358.el6.x86_64/  && make  && make install
  

  --sysconf  // keepalived的主配置文件存放位置/etc/keepalived/keepalived.conf
  --with-kernel-dir    //指定本服务器正在使用的内核文件的存放位置
  

  # ln -s /usr/local/sbin/keepalived /sbin/
  # chkconfig  keepalived on
  二、Keepalived 配置说明
  

  1、主调度器设置
  # vim /etc/keepalived/keepalived.conf
  #设置报警邮件
  global_defs {
  notification_email {
  admin@dave.com.cn    //发件人邮箱
  }
  notification_email_from  keepalived@localhost    //收件人邮箱
  smtp_server 172.0.0.1    //给谁发邮件
  smtp_connect_timeout 30
  router_id LVS_devel
  }
  #VRRP实例设置
  vrrp_instanceVI_1 {
  state MASTER    //主服务器就写MASTER,辅助备份就写SLAVE
  interface eth0
  virtual_router_id 51
  priority 100    //主服务器优先级要比备份的高例子:主是100  那么备用就是60
  advert_int 1     //主备服务器多长时间互相检测 这里是1秒
  authentication {
  auth_type pass
  auth_pass 1111   //主辅服务器密码必须一致
  }
  virtual_ipaddress { 192.168.10.50  }    //指定调度器上的VIP虚拟IP
  }
  virtual_server 192.168.10.50 80 {   //设置Real ServerWeb服务器)上虚拟IP192.168.10.50端口号80
  delay_loop 6
  lb_algo rr          //设置LVS调度算法为RR
  lb_kind DR       //设置LVS的模式为DR
  persistence_timeout 50   //在50秒内再次建立链接,会发配到以前的WEB服务器上
  protocol TCP
  real_server 192.168.10.20 80 {    //指定真实服务器web上的IP和端口号
  weight 1          //设置权重为1
   TCP_CHECK {
  connect_timeout 3   //连接3秒超时
  nb_get_retry 3   //连接失败,重连3次
  delay_before_retry 3   //每次连接失败3秒后在连接
  }
  }
  real_server 192.168.10.22  80 {    //指定真实服务器web上的IP和端口号
  weight 2          //设置权重为2
   TCP_CHECK {
  connect_timeout 3   //连接3秒超时
  nb_get_retry 3   //连接失败,重连3次
  delay_before_retry 3   //每次连接失败3秒后在连接
  }
  }
  }
  注:其它的删除
  

  2、备调度器设置  只要改下面两处
  state SLAVE    //主服务器就写MASTER,辅助备份就写SLAVE
  priority 90    //主服务器优先级要比备份的高例子:主是100  那么备用就是60
  

  三、两台调度器上都安装LVS(ipvsadm)
  # mount /dev/sr0 /media
  # rpm -ihv /media/Packages/ipvsadm-1.26-2.el6.x86_64.rpm
  # service ipvsadm start ; chkconfig ipvsadm on
  四、在所有真实WEB服务器上配置
  1、调整内核参数
  # vim /etc/sysctl.conf       //调整web服务器上的内核参数
  net.ipv4.conf.all.arp_announce = 2    //添加进去
  net.ipv4.conf.lo.arp_announce = 2
  net.ipv4.conf.all.arp_ignore = 1
  net.ipv4.conf.lo.arp_ignore = 1
  # sysctl -p
  

  2、创建和配置lo本地循环地址的子端口
  # cd /etc/sysconfig/network-scripts/
  # cp ifcfg-lo  ifcfg-lo:0
  

  # vim ifcfg-lo:0
  DEVICE=lo:0
  IPADDR=192.168.10.50
  NETMASK=255.255.255.255    //子网掩码必须全是255
  BROADCAST=192.168.10.50     //广播地址跟IP一样
  ONBOOT=yes
  五、检查测试
  两台调度器上操作:
  # /etc/init.d/keepalived  restart //重启keepalived服务
  # ipvsadm -Ln                // 查看LVS服务规则
  # /etc/init.d/ipvsadm  save     //规则没问题,就保存
  主调度器上操作:
  # ip addr show eth0    //查看某一块网卡上面上的虚拟IP,能显示192.168.10.50
  # ipvsadm -Ln        // 再查看LVS服务规则

  

  备调度器上操作:
  # ip addr show eth0    //不能显示192.168.10.50
  # ipvsadm -Ln         // 再查看LVS服务规则
  

  客户端访问:
  http://192.168.10.50    此时显示web2上的内容,此时查看主调度器
  

  # ipvsadm -Ln   // 主调度器再查看LVS服务规则,已经有了连接

  

  过会刷新http://192.168.10.50 此时显示web1上的内容,此时再查看主调度器,192.168.10.20对应
  InActConn已从0变成1,说明LVS起到了负载作用。
  

  将主调度器关闭,查看备调度器:
  # ip addr show eth0    //此时显示192.168.10.50,说明备服务器起作用,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-657929-1-1.html 上篇帖子: Keepalived+MySQL主主互备模式实现高可用 下篇帖子: 使用HAproxy,keepalived实现简单LAMP架构的负载均衡与高可用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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