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

[经验分享] keepalived lvs 负载均衡 集群

[复制链接]

尚未签到

发表于 2018-12-31 08:30:04 | 显示全部楼层 |阅读模式
  准备两台调度主机,两台real server主机
  

  下载软件: keepalived-1.2.5.tar.gz
  

  将以前的piranha 集群服务关闭
  

  yum install gcc make openssl-devel kernel-devel popt-devel libnl-devel -y
  

  如果没有安装kernek-devel 软件包,则此keepalived 不具备负载均衡功能
  

  tar zxvf keepalived-1.2.5.tar.gz #两台调度主机需要安装
  

  cd keepalived-1.2.5
  

  ./configure       #如果报错,则安装需要的软件包
  


  下面为 configure 后的输出内容,必须支持IPVS
  

  Keepalived configuration
  

  Keepalived
  

  version : 1.1.17
  

  Compiler : gcc
  

  Compiler flags : g
  

  O2
  

  Extra Lib : lpopt
  

  lssl
  

  lcrypto
  

  Use IPVS Framework : Yes   #注意编译时一定要支持lvs
  

  IPVS sync daemon support : Yes
  

  Use VRRP Framework : Yes
  

  Use LinkWatch : No
  

  Use Debug flags : No
  


  make && make install
  

  默认将keepalived 安装到/usr/local/etc/ 目录下
  

  cd /usr/local/etc/ && ls   #查看keepalived的安装
  

  cp -r keepalived/ /etc/
  

  cd rc.d/init.d/
  

  cp keepalived /etc/init.d/
  

  cd ../..sysconfig/
  

  cp keepalived /etc/sysconfig/  #两台主机都要安装keepalived
  


  复制安装文件到相应的目录下
  

  cd /etc/keepalived/
  

  vim keepalived.conf
  

  ! Configuration File for keepalived
  


  global_defs {
  

  notification_email {
  

  1165862826@qq.com   #接收警报的email地址,可以添加多个
  

  }
  

  notification_email_from keepalived@desktop99.example.com
  

  smtp_server 127.0.0.1   #使用本机转发email
  

  smtp_connect_timeout 30
  

  router_id LVS_DEVEL   #load balancer的标识ID,用于email警报
  

  }
  


  vrrp_instance VI_1 {
  

  state MASTER   #备机改为BACKUP,此状态是由priority的值来决定的,当
  

  priority的值小于备机的值,那么将会失去MASTER状态
  

  interface eth0   #HA监测网络接口
  

  virtual_router_id 99  #vrid只能在1-255范围内,且主备的vrid必须相同
  

  priority 100    #备份调度主机的优先级要比主调度主机的小才行
  

  advert_int 1    #主备之间的通告间隔秒数
  

  authentication {   #主备切换时的验证
  

  auth_type PASS
  

  auth_pass 1111
  

  }
  

  virtual_ipaddress {  #HA虚拟ip,可加多个
  

  192.168.0.240
  

  }
  

  }
  


  virtual_server 192.168.0.240 80 { 设置虚拟服务
  

  delay_loop 6     #每隔6秒查询realserver状态
  

  lb_algo rr     #lvs 调度算法,这里使用轮叫
  

  lb_kind DR     #lvs负载均衡机制,这里使用直连路由
  

  # nat_mask 255.255.255.0
  

  # persistence_timeout 50  #同一IP的连接50秒内被分配到同一台realserver,如果是ftp的话,不需要注释持续链接。
  

  protocol TCP     #用TCP协议检查realserver状态
  


  real_server 192.168.0.34 80 {
  

  weight 1
  

  TCP_CHECK {
  

  connect_timeout 3
  

  nb_get_retry 3   #故障重试秒数
  

  delay_before_retry 3 #重试延迟
  

  }
  

  }
  

  real_server 192.168.0.81 80 {
  

  weight 1
  

  TCP_CHECK {
  

  connect_timeout 3
  

  nb_get_retry 3
  

  delay_before_retry 3
  

  }
  

  }
  

  }
  


  scp keepalived.conf 192.168.0.100:/etc/keepalived/
  

  scp过去,要改主机名,state状态,优先级要比主的小
  

  ln -s /usr/local/sbin/keepalived /usr/sbin/ keepalived服务只会在/usr/sbin目录下查找keepalived的命令    在两台调度主机上作连接,并启动
  

  /etc/init.d/keepalived start
  遇到的问题:
启动keepalived服务后,VIP并没有启动,需要手动配置。
  


  tail -f /var/log/messages
  

  VRRP_Instance(VI_1) Entering MASTER STATE 显示此提示信息表示好了
  

  在备份调度主机
  

  vim keepalived.conf
  

  ! Configuration File for keepalived
  


  global_defs {
  

  notification_email {
  

  1165862826@qq.com
  

  }
  

  notification_email_from keepalived@desktop100.example.com
  

  smtp_server 127.0.0.1
  

  smtp_connect_timeout 30
  

  router_id LVS_DEVEL
  

  }
  


  vrrp_instance VI_1 {
  

  state BACKUP
  

  interface eth0
  

  virtual_router_id 99
  

  priority 50
  

  advert_int 1
  

  authentication {
  

  auth_type PASS
  

  auth_pass 1111
  

  }
  

  virtual_ipaddress {
  

  192.168.0.240
  

  }
  

  }
  


  virtual_server 192.168.0.240 80 {
  

  delay_loop 6
  

  lb_algo rr
  

  lb_kind DR
  

  # nat_mask 255.255.255.0
  

  # persistence_timeout 50
  

  protocol TCP
  


  real_server 192.168.0.34 80 {
  

  weight 1
  

  TCP_CHECK {
  

  connect_timeout 3
  

  nb_get_retry 3
  

  delay_before_retry 3
  

  }
  

  }
  

  real_server 192.168.0.81 80 {
  

  weight 1
  

  TCP_CHECK {
  

  connect_timeout 3
  

  nb_get_retry 3
  

  delay_before_retry 3
  

  }
  

  }
  

  }
  

  备份调度主机的优先级要比主调度主机的小才行,
  

  tail -f /var/log/messages
  

  VRRP_Instance(VI_1) Entering BACKUP STATE 显示此提示信息表示好了
  


  分别在 realserver 上执行以下命令
  

  vi /etc/sysctl.conf
  

  net.ipv4.conf.all.arp_ignore = 1
  

  net.ipv4.conf.lo.arp_ignore = 1
  

  net.ipv4.conf.all.arp_announce = 2
  

  net.ipv4.conf.lo.arp_announce = 2
  

  sysctl -p
  

  ifconfig eth0:0 192.168.0.240 netmask 255.255.255.255 up
  

  route add -host 192.168.0.240 dev eth0:0
  


  如果在lo:0 上设置 192.168.0.240 ,则不需要关闭 arp,只需:
  

  ifconfig lo:0 192.168.0.240 netmask 255.255.255.255 up
  

  route add -host 192.168.0.240 dev lo:0
  


  echo `hostname` > /var/www/html/index.html
  

  service httpd start
  


  在两台调度主机:ip addr show 查看在eth0是否有vip,即192.168.0.240,哪台调度主机上面有vip,则此主机为主调度主机
  


  ipvsadm -l
  

  当访问时,两台调度主机的调度列表保持同步,这样当一台主机宕掉,另一台可以接替,且session会话不会丢失,只是转移到另一台主机。
  


  同前面的集群实验一样,如果访问时只能访问一台real server,则需手动设置arp:
  

  arp -d 192.168.0.240 删除之前的arp缓存
  

  arp -s 192.168.0.240 52:54:00:53:1f:c3
  


  注:keepalived 的高可用效率很高,当主调度主机挂掉,备份的立刻接替。
  


  测试:
  

  访问 http://192.168.0.240,看到页面在两个 realserver 上切换表示成功!
  

  你也可以通过 ipvsadm -Lnc 查看详细连接情况!




运维网声明 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-657811-1-1.html 上篇帖子: LVS+Keepalived负载均衡主备 下篇帖子: keepalived+LVS部署及讲解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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