HAProxy + Keepalived 搭建高可用负载均衡集群架构

HAProxy + Keepalived 搭建高可用负载均衡集群架构

file

1. 环境准备

1.1 四台 CentOS 服务器或者虚拟机

| 编号 | 描述 | IP |
| — | — |
| 1 | 业务系统 | 192.168.3.20 |
| 2 | 业务系统 | 192.168.3.21 |
| 3 | HAProxy 1 + Keepalived 1 | 192.168.3.10 |
| 4 | HAProxy 2 + Keepalived 2 | 192.168.3.11 |

1.2 部署业务系统

192.168.3.20192.168.3.21 上部署好业务系统.
帅帅这里写了一个最简单的 SpringBoot 应用, 为了加以区别, 分别打包输出 Node1 和 Node2.

file

2. 部署 HAProxy 搭建负载均衡集群

2.1 安装 HAProxy

分别在两台机器 192.168.3.10192.168.3.11 上安装 HAProxy.

yum install -y haproxy

2.2 配置 HAProxy

在两台机器192.168.3.10192.168.3.11上编辑配置文件

vi /etc/haproxy/haproxy.cfg
global

    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  app
    mode tcp
    bind *:9090
    option tcplog
    default_backend             app

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
    balance     roundrobin
    server  192.168.3.20 192.168.3.20:8080 check
    server  192.168.3.21 192.168.3.21:8080 check

#---------------------------------------------------------------------
# admin manager
#---------------------------------------------------------------------

listen stats
    bind *:1080
    stats auth admin:success123
    stats refresh 5s
    stats realm HAProxy\ Statistics
    stats uri /admin

2.3 启动 HAProxy

启动两台机器的 HAProxy

systemctl start haproxy
systemctl status haproxy

看到 HAProxy 显示 active (running) 就表示启动起来了

file

2.4 验证

2.4.1 访问 HAProxy 的后台统计页面

访问 http://192.168.3.10:1080/adminhttp://192.168.3.11:1080/admin 可以看到两台业务系统都是运行状态就表示系统负载均衡配置完成.

file

2.4.2 访问业务系统

通过 HAProxy 访问业务系统: http://192.168.3.10:9090/http://192.168.3.11:9090/, 并多次切换观察负载均衡效果

file

3. 部署 Keepalived 实现 HAProxy 主备模式

3.1 安装 Keepalived

在两台机器192.168.3.10192.168.3.11上安装 Keepalived

 yum install -y keepalived

3.2 配置 Keepalived

3.2.1 配置 Master 节点 192.168.3.10

! Configuration File for keepalived

global_defs {
   router_id app_router
}

vrrp_script check_haproxy {
    script "killall -0 haproxy"
    interval 3
    weight -2
    fall 10
    rise 2
}

vrrp_instance VI_1 {
    state MASTER
    interface enp0s3
    virtual_router_id 51
    priority 200
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.3.110
    }
    track_script {
        check_haproxy
    }
}

3.2.2 配置备份节点 192.168.3.11

! Configuration File for keepalived

global_defs {
   router_id app_router
}

vrrp_script check_haproxy {
    script "killall -0 haproxy"
    interval 3
    weight -2
    fall 10
    rise 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface enp0s3
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.3.110
    }
    track_script {
        check_haproxy
    }
}

3.3 启动 Keepalived 主备模式

分别在两台机器上启动 keepalived

systemctl start keepalived

file

查看 VIP(由于我们配置了主节点优先级更高 200 — 100), 因此 VIP 首先会在主节点.

file

3.4 通过 VIP 访问业务系统

现在就可以通过 VIP(192.168.3.110)+port 的方式访问, 这样, 当主节点存活的情况下就会通过主节点(192.168.3.10)的 HAProxy 负载均衡访问业务系统, 如果主节点宕机, VIP 就会飘到备份节点上走备份节点的 HAProxy 负载均衡访问业务系统.

file

4. 模拟主节点宕机测试

关闭主节点(192.168.3.10)模拟宕机操作. 继续通过 VIP 访问发现依然可以访问业务系统. 即达到我们的高可用.

结论: 当主节点存活的情况下就会通过主节点(192.168.3.10)的 HAProxy 负载均衡访问业务系统, 如果主节点宕机, VIP 就会飘到备份节点上走备份节点的 HAProxy 负载均衡访问业务系统.

5. 视频教程

视频教程已经提前发布在 HAProxy + Keepalived 搭建高可用负载均衡集群架构.

感兴趣的朋友扫下方的 Bilibili 二维码查看视频教程, 大家记得一键三连哈…哈哈哈哈…

file

点击文档底部阅读原文或者复制网页链接到浏览器都可以播放哦:
https://www.bilibili.com/video/BV1Fh411Y7hc

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值