tongyi007 发表于 2018-12-30 09:20:25

实现基于Haproxy_NAT+Keepalived负载均衡高可用架构

http://s3.运维网.com/oss/201711/11/600bda6081aefa610942027b55551a4e.png
  实验思路:
  1.做这个实验首先可以想象一个场景,用户访问webserver的时候首先会经过调度器,首先需要明白的一点就是一般公司一般是在内网,客户端是通过外网访问webserver的。
  2.haproxy是一个负载均衡器,Keepalived通过VRRP功能能再结合LVS负载均衡软件即可部署一个高性能的负载均衡集群系统,也就是说haproxy是解决后端realserver负载均衡的问题,keepalived是解决调度器的高可用的问题。
  3.haproxy检测到后端服务器处于不健康的状态的时候会把后端realserver给剔除,通过权重的大小把客户端的访问调度到不同的realserver上;通过keepalived实现地址的漂移,当主调度器出现状况,就会把后端的realserver服务转移到另外一台调度器上。
  4.需要特别注意的就是,haproxy可以自己寻找网关,不需要路由转发的功能。会把客户端的请求当做自己的请求拿到资源然后再返回给客户端,充当了代理的功能,也就是说并不需要dip,如果是一台调度器,可以自己的外网卡充当vip,因为这个时候不需要实现调度,不需要地址的漂移功能,如果是多台调度器需要配置vip实现地址的漂移,这个时候主坏掉,才能实现webserver所指向 的调度器变成从,从而实现webserver的访问(意思就是单台调度器vip可要可不要)。
  实验准备:
  两台centos7准备realserver,两台centos6准备用于做haproxy主从架构,防火墙关闭、各节点时钟服务同步、各节点之间可以通过主机名互相通信。realserver还是小米电子网站。
  实验步骤:
  第一步:配置keepalived,配置虚拟ip。
  主机1.vrrp_instance VI_1 {
      state BACKUP
      interface eth0
      virtual_router_id 30
      priority 98
      advert_int 1
   # nopreempt
      authentication {
        auth_type PASS
        auth_pass magedu
      }
      virtual_ipaddress {
        172.17.120.120
  }
  notify_backup "/etc/keepalived/notify.sh backup"
  notify_master "/etc/keepalived/notify.sh master"
  notify_fault "/etc/keepalived/notify.sh fault"
  }
  主机2.vrrp_instance VI_1 {
      state MASTER
      interface eth1
      virtual_router_id 30
      priority 100
      advert_int 1
  #nopreempt
     authentication {
        auth_type PASS
        auth_pass magedu
      }
      virtual_ipaddress {
        172.17.120.120
  }
  notify_backup "/etc/keepalived/notify.sh backup"
  notify_master "/etc/keepalived/notify.sh master"
  notify_fault "/etc/keepalived/notify.sh fault"
  }
  第二步:配置haproxy,连接realserver。
  1.全局配置
   log      127.0.0.1 local2--日志配置,配合rsyslog使用,在rsyslog中定义完成后要记得重启rsyslog服务。Centos6自己创建定义的日志文件目录。
      chroot      /var/lib/haproxy
      pidfile   /var/run/haproxy.pid
      maxconn   4000
      user      haproxy
      group       haproxy
      daemon
  2.haproxy状态检测页面
  listen stats
  mode http
  bind 0.0.0.0:1080
  statsenable
  stats uri/haproxyadmin
  statsauthadmin:admin
  statsadminif TRUE
  3.客户端限制配置
  frontend   web
  bind      :80
  default_backend    lnmp-server
  4.realserver端配置
  backendlnmp-server
        balance         roundrobin
        option          httpchkGET   /index.html ---这个健康检测页面配置了就要有,没有就会认为realserver有误。
        server          lnmpserver1   172.17.252.78:80 check inter 3000 rise 3 fall 5
        server          lnmpserver2   172.17.110.110:80 check inter 3000 rise 3 fall 5
  完整配置:
http://s3.运维网.com/oss/201711/11/6bcec0106b984b8cd3df29ffb17dc38a.png
   5.复制一份给另外一台haproxy,保证配置是一样的。   
  第三步:测试界面
  1.backup宕机
http://s3.运维网.com/oss/201711/11/2aca3276f79340c9e7d307916d3a0978.png
2.master宕机
https://s2.运维网.com/oss/201711/11/bf9e3d7def3e4613ffe65527b26bd976.png




页: [1]
查看完整版本: 实现基于Haproxy_NAT+Keepalived负载均衡高可用架构