搭建基于DR模式的LVS+Keepalive高可用集群

事前的IP规划图如下:

两台LVS+Keepalived的IP规划如下:
虚拟IP(VIP):192.168.235.20
主节点IP:192.168.235.21
备节点IP:192.168.235.22

RealServer(两台nginx)的IP规划如下:
192.168.235.101
192.168.235.103

完成后规划图如下所示:

一、LVS主机(192.168.235.21,192.168.235.22)安装安装ipvsadm

yum install -y ipvsadm

二、LVS主机(192.168.235.21,192.168.235.22)安装Keepalvie

参考安装链接:

https://blog.csdn.net/qq_34871626/article/details/107774077 ,安装完成到第7步骤即可。

三、LVS主机(192.168.235.21,192.168.235.22)创建网络子接口,这里的ifcfg-ens33根据自己的情况:

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens33:1

修改文件:

vi ifcfg-ens33:1

修改后文件内容如下:

BOOTPROTO=static
#跟拷贝后的网卡信息文件名名字要对应
DEVICE=ens33:1
ONBOOT=yes
#修改为虚拟ip
IPADDR=192.168.235.20
NETMASK=255.255.255.0

重启网络:

service network restart

执行:

ip addr

可以看到相应的信息,说明配置成功了。


四、分别进入RealServer192.168.235.101和192.168.235.103,配置虚拟网络子接口(回环接口),对ifcfg-lo进行拷贝并修改

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:1

vi ifcfg-lo:1

修改内容如下:

#与拷贝后文件名对应
DEVICE=lo:1
#虚拟ip地址
IPADDR=192.168.235.20
#掩码修改为255
NETMASK=255.255.255.255
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback

刷新lo:

ifup lo

执行

ip addr

获取到配置的lo信息说明配置成功:

五、分别设置RealServer的arp响应级别(arp-ignore)及通告行为(arp-announce)

arp-ignore(处理请求):
0:只要本机配置了IP,就能响应请求
1:请求的目标地址到达对应的网络接口,才会响应请求
arp-announce(返回响应):
0:本机上任何网络接口都能向外通告,所有网卡都能接受到通告
1:尽可能避免本网卡与不匹配的目标进行通告
2:只在本网卡通告

执行:

vi /etc/sysctl.conf 

插入以下信息:

net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1

net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.arp_announce=2
net.ipv4.conf.lo.arp_announce=2

刷新配置:

sysctl -p

六、RealServer192.168.235.101和192.168.235.103添加lo路由:

#安装route命令包
yum install net-tools

#添加路由配置
route add -host 192.168.235.20 dev lo:1

#防止重启后丢失改路由配置
echo "route add -host 192.168.235.20 dev lo:1" >> /etc/rc.local

七、修改Keepalived配置:

vi /etc/keepalived/keepalived.conf

主节点配置如下:

! Configuration File for keepalived

global_defs {
   router_id LVS_21
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 41
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.235.20
    }
}

#配置集群地址访问的IP+端口,端口和nginx保持一致
virtual_server 192.168.235.20 80 {
    #健康检查时间,单位是秒
    delay_loop 6
        #负载均衡算法,默认是轮询
    lb_algo rr
        #LVS模式,NAT/DR/TUN
    lb_kind DR
        #会话持久化时间
    persistence_timeout 50
        #协议
    protocol TCP

#负载均衡的真实服务器地址
    real_server 192.168.235.101 80 {
           #轮询权重配比
        weight 1
                #设置健康检查
                TCP_CHECK{
                 #检查的端口
                  connect_port 80
                 #超时时间
                  connect_timeout 2
                 #重试次数
                  nb_get_retry 5
                 #间隔时间
                  delay_before_retry 3
                }
    }

    real_server 192.168.235.103 80 {
        weight 1
                TCP_CHECK{
                  connect_port 80
                  connect_timeout 2
                  nb_get_retry 5
                  delay_before_retry 3
                }
    }
}

备节点配置如下:

! Configuration File for keepalived

global_defs {
   router_id LVS_22
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 41
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.235.20
    }
}


virtual_server 192.168.235.20 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP
    real_server 192.168.235.101 80 {
        weight 1
		TCP_CHECK{
		  connect_port 80
		  connect_timeout 2
		  nb_get_retry 5
		  delay_before_retry 3
		}
    }

    real_server 192.168.235.103 80 {
        weight 1
		TCP_CHECK{
		  connect_port 80
		  connect_timeout 2
		  nb_get_retry 5
		  delay_before_retry 3
		}		
    }
}

八、启动Keepalived:

service start keepalived

九、访问虚拟IP192.168.235.20

注:LVS服务器需要开放80端口及VRRP,RealServer需要开放80端口

#开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

#VRRP
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0  --protocol vrrp -j ACCEPT

访问成功,关闭103节点,再次访问,发现跳转到了101节点:

关闭掉LVS主节点进行访问,也能正常访问,虚拟IP转移到备的LVS节点说明配置成功:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值