前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

作者头像
星哥玩云
发布2022-07-25 09:21:10
3770
发布2022-07-25 09:21:10
举报
文章被收录于专栏:开源部署
实现LVS的DR模式

LVS的DR模式的原理详细介绍请看LVS负载均衡之LVS-NAT与LVS-DR模式原理详解这篇文章。

一. 实验环境

三台机器:

  • Director节点: (ens33 192.168.10.53 vip ens33:0 192.168.10.80)
  • Real server1: (ens33 192.168.10.51 vip lo:0 192.168.10.80)
  • Real server2: (ens33 192.168.10.52 vip lo:0 192.168.10.80)
二. 安装和配置
1. 配置两个real server服务器

(1) 配置虚拟IP地址(VIP)

VIP地址仅用作发送Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器Director监听并分发)。因此使用虚接口lo:0来承载VIP地址。

代码语言:javascript
复制
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
 DEVICE=lo:0
 IPADDR=192.168.10.80
 NETMASK=255.255.255.255   #子网掩码必须全为1
 ONBOOT=yes 1
ifup lo:0     #开启虚拟接口 
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

(2)安装httpd,创建测试网页

代码语言:javascript
复制
#安装httpd
yum install httpd -y
代码语言:javascript
复制
#real server1创建测试网页
echo "Server 192.168.10.51" > /var/www/html/index.html
#real server2创建测试网页
echo "Server 192.168.10.52" > /var/www/html/index.html

(3)启动httpd服务,关闭防火墙和安全性策略

代码语言:javascript
复制
#启动httpd服务
systemctl start httpd.service 
systemctl enable httpd.service 
代码语言:javascript
复制
#关闭防火墙和安全性策略
systemctl stop  firewalld.service 
systemctl disable firewalld.service
setenforce 0

(4)在两台real server上配置启动脚本

代码语言:javascript
复制
vim /etc/init.d/rs.sh
  #!/bin/bash
  VIP=192.168.10.80
        case "$1" in
        start)
                ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
                /sbin/route add -host $VIP dev lo:0      #为本机添加一条路由记录
                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
                sysctl -p >/dev/null 2>&1
                echo "RealServer Start OK "
                ;;
        stop)
                ifconfig lo:0 down
                route del $VIP /dev/null 2>&1
                echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
                echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
                echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
                echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
                echo "RealServer Stopd"
                ;;
        *)
                echo "Usage: $0 {start|stop}"
                exit 1
        esac
        exit 0

这里需要注意的是避免ARP通信紊乱,解决方案是:修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求。

arp_announce=2表示系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址。(5)运行启动脚本

第一次访问:

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

Real Server连接次数查看:

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

刷新一次:

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

Real Server连接次数查看:

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

  • LVS结合keepalive

1.高可用群集(High Availability Cluster):以提高应用系统的可靠性、尽可能的减少中断时间为目标,确保服务的连续性,达到高可用(HA)容错效果。

2.LVS可以实现负载均衡,但是不能够故障切换和健康检查,也就是当一个rs服务器出现故障时,LVS仍然会把请求转发给故障的rs服务器,这样就会导致请求无效。keepalive软件可以解决 LVS 单点故障的问题,能同时实现 LVS 的高可用性。这里以LVS-DR模式为例。

一.实验环境

上述的LVS-DR搭建好web群集后,再添加一台备用的Director Server服务器,其配置同上。

四台机器:

  • Keepalived1 + lvs1(Director1):192.168.10.53 (主)
  • Keepalived2 + lvs2(Director2):192.168.10.54 (从)
  • Real server1:192.168.10.51
  • Real server2:192.168.10.52
  • VIP: 192.168.10.80
二.安装配置

在两个Director Server 节点服务器部署keepalived服务。

(1)安装keepalive软件

代码语言:javascript
复制
yum install keepalived -y

(2)主keepalived节点配置(lvs1)

代码语言:javascript
复制
#主节点( MASTER )配置文件
vim /etc/keepalived/keepalived.conf
 global_defs {
  ...    #省略部分
  smtp_server 127.0.0.1           #指向本地
  router_id LVS_01               #指定名称,备份服务器不同名称
  ...    #省略部分          
}

 vrrp_instance VI_1 {        #定义VRRP热备实例
    state MASTER            #MASTER表示主调度器
    interface ens33         #承载VIP地址的物理接口
    virtual_router_id 51    #虚拟路由器的ID号,每个热备组保持一致
    priority 100            #主调度器优先级
    advert_int 1            #通告间隔秒数
    authentication {        #认证信息
        auth_type PASS      #认证类型
        auth_pass 1111      #字码密串
    }
    virtual_ipaddress {     #指定群集VIP地址,也就是漂移地址
        192.168.10.80
    }
}

virtual_server 192.168.10.80 80 {  #虚拟服务器VIP地址
    delay_loop 6                   #健康检查的间隔时间
    lb_algo rr                     #轮询rr的调度算法
    lb_kind DR                     #直接路由工作模式
    persistence_timeout 0          #连接保持时间
    protocol TCP                   #应用服务采用的是TCP协议

    real_server 192.168.10.51 80 {  

                        #第一个web节点的服务器地址、端口
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80       
        }
    }

    real_server 192.168.10.52 80 {  

                       #第二个web节点的服务器地址、端口
 router_id LVS_01         weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

(3)从keepalived节点配置(lvs2) 拷贝主节点的配置文件keepalived.conf,然后修改如下内容:

代码语言:javascript
复制
router_id LV ->  router_id LVS_02 #从调度器名称
state MASTER -> state BACKUP  #从调度器
priority 100 -> priority 90   #从调度器优先级

(4)启动keepalive

代码语言:javascript
复制
#先主后从分别启动keepalive
systemctl start keepalived
三.测试 keepalived 的HA特性

(1)虚拟IP地址漂移

首先在master(lvs1)上执行命令 ip addr ,可以看到vip在master节点上的;

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

这时如果在master上执行 systemctl stop keepalived 命令,这时vip已经不在master上,在slave节点上执行 ip addr 命令可以看到 vip 已经正确漂到slave节点。

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

这时客户端去访问 http://192.168.10.80 访问依然正常。

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

(2)连通性

在客户机执行“ping 192.168.10.80 -t”,能够正常ping通。 禁用master(lvs1)的ens33网卡,发现还是能正常ping通。

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

(3)web访问测试

禁用master(lvs1)的ens33网卡,再次访问上述web服务,网页文档显示正常。

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现LVS的DR模式
  • 一. 实验环境
  • 二. 安装和配置
    • 1. 配置两个real server服务器
    • 一.实验环境
    • 二.安装配置
    • 三.测试 keepalived 的HA特性
    相关产品与服务
    负载均衡
    负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档