LVS+keepalived DR模式实现高可用负载均衡
  ya5sWtP5t3Ld 2023年11月02日 56 0

测试环境准备2+n台主机,n>=2

dir(主)192.168.1.201

dir(备)192.168.1.200

rs1:192.168.1.12

rs2:192.168.1.13

rs3:192.168.1.14

rs4:192.168.1.15

VIP:192.168.1.152

dir主机上安装ipvsadm与keepalived

1.安装

yum install ipvsadm -y
yum install keepalived -y

2.查看ipvsadm内核是否启用

[root@slb-5 ~]# lsmod |grep ip_vs

ip_vs_wrr              12697  1 
ip_vs_rr               12600  1 
ip_vs                 145458  6 ip_vs_rr,ip_vs_wrr
nf_conntrack          139264  1 ip_vs
libcrc32c              12644  3 xfs,ip_vs,nf_conntrack

如果未启用使用modprobe命令启用(待验证):

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4

配置keepalived

[root@dir ~]# vi /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {
    #备用服务器上为 BACKUP
    state MASTER
    #绑定vip的网卡
    interface ens33
    #路由id,需要与backup机器相同
    virtual_router_id 51
    #定义权重,备用服务器上要小于100
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keepalived123#密码
    }
    virtual_ipaddress {
        192.168.234.200
    }
}
virtual_server 192.168.1.152 80 {
    #每隔10秒查询realserver状态
    delay_loop 10
    #lvs 算法
    lb_algo wlc
    #DR模式,DR模式下监听端口必须与转发端口一致负责不成功
    lb_kind DR
    #同一IP的连接60秒内被分配到同一台rs
    persistence_timeout 60
    #用TCP协议检查rs
    protocol TCP

    real_server 192.168.1.12 80 {
        #权重
        weight 100
        TCP_CHECK {
        #10秒无响应超时
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.1.13 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 13
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
    real_server 192.168.1.14 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
    real_server 192.168.1.15 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
}

关闭linux内核的重定向参数响应

LVS+keepalived DR模式实现高可用负载均衡_服务器

sysctl -p 刷新

启动keepalived

[root@dir ~]# systemctl enable keepalived&&systemctl start keepalived

为rs节点服务器回环口配置VIP

[root@rs1 ~]# vim /usr/local/sbin/lvs_rs.sh  //两台rs上添加的内容一致
#/bin/bash
vip=192.168.1.152
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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


[root@rs1 ~]#  /usr/local/sbin/lvs_rs.sh

查看配置情况

ipvsadm -ln

[root@slb-6 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=1048576)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.152:8080 rr   # 监听端口与转发端口不一致,所以无法正常使用
  -> 192.168.1.12:30468           Route   25     0          0         
  -> 192.168.1.13:31858           Route   25     0          0         
  -> 192.168.1.14:31407           Route   25     0          0         
  -> 192.168.1.15:32196           Route   25     0          0         
TCP  192.168.1.152:31334 wrr
  -> 192.168.1.12:31334           Route   25     0          0         
  -> 192.168.1.13:31334           Route   25     0          0         
  -> 192.168.1.14:31334           Route   25     0          0         
  -> 192.168.1.15:31334           Route   25     0          0 


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  4Txe79BjyroE   2023年12月08日   29   0   0 TCP
  Yoru5qB4TSKM   2023年12月10日   39   0   0 服务器重启IP
  pfb3gDAOHucg   2023年12月09日   38   0   0 TCP网络层协议UDP