Keepalived+Lvs(dr)调度器主备配置小实验

简介: Keepalived和LVS(Linux Virtual Server)是两个常用的开源软件,通常结合使用以提供高可用性和负载均衡的解决方案。Keepalived是一种用于实现高可用性的软件,它可以监控服务器的健康状态,并在主服务器出现故障时自动切换到备份服务器。

前言

Keepalived和LVS(Linux Virtual Server)是两个常用的开源软件,通常结合使用以提供高可用性和负载均衡的解决方案。


Keepalived是一种用于实现高可用性的软件,它可以监控服务器的健康状态,并在主服务器出现故障时自动切换到备份服务器。它使用VRRP(Virtual Router Redundancy Protocol)协议来实现服务器之间的冗余和故障恢复,确保服务的连续性。Keepalived还可以配合其他负载均衡软件(如LVS)一起使用,以提供更可靠的高可用性解决方案。


LVS(Linux Virtual Server)是一种用于构建高性能和可扩展的负载均衡集群的软件。LVS使用IP负载均衡技术将客户端的请求分发到多个后端服务器上,提高了整个系统的处理能力和吞吐量。LVS支持多种负载均衡算法(如轮询、加权轮询、最少连接等),可以根据实际需求灵活配置。LVS的工作模式有多种,其中DR(Direct Routing)模式是一种常用的模式,它通过修改数据包的目的MAC地址实现请求的转发,提高了转发的效率。


综合起来,使用Keepalived+LVS(dr)的解决方案可以实现高可用性和负载均衡的效果。Keepalived负责监控服务器的健康状态,并在主服务器发生故障时自动切换到备份服务器,保证服务的连续性。而LVS负责将客户端的请求分发到多个后端服务器上,提高系统的性能和可扩展性。通过结合使用这两个软件,可以构建出稳定可靠的高可用性和负载均衡的系统架构。


一、实验拓扑图


按要求准备好下列的设备

二、配置LVS(dr)模式

1、配置2台web节点

##安装nginx
yum -y install epel
yum -y install nginx
##分别书写两台web服务器的测试页面
echo nginx1 > /usr/share/nginx/html/index.html
echo nginx2 > /usr/share/nginx/html/index.html
##启动nginx
systemctl start nginx

测试


2、调整web节点的APR参数

##调整ARP参数
vim /etc/sysctl.conf
##插入
net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=2 
net.ipv4.conf.default.arp_ignore=1 
net.ipv4.conf.default.arp_announce = 2 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.lo.arp_announce=2
##是它生效  
sysctl -p


3、配置web节点虚拟IP

##配置虚拟IP地址
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
##插入
DEVICE=lo:0
IPADDR=192.168.115.200
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback:0
##重启网卡并添加路由
systemctl restart network
route add -host 192.168.115.200/32 dev lo:0

4、配置主调配器192.168.115.128

##设置APR参数
vim /etc/sysctl.conf
##插入
net.ipv4.conf.all.send_redirects = 0 
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects = 0
##是之生效
sysctl -p
##配置网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
##插入
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.115.200
PREFIX=24
##安装ipvsadm
yum -y install ipvsadm
##加载查看模块
modprobe ip_vs
lsmod |grep ip_vs
##启动ipvsadm
touch /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service 
##添加策略
ipvsadm -A -t 192.168.115.200:80 -s rr
ipvsadm -a -t 192.168.115.200:80 -r 192.168.115.131:80 -g
ipvsadm -a -t 192.168.115.200:80 -r 192.168.115.134:80 -g
##保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm
##重启网卡
systemctl restart network

浏览器验证

三、配置调配器热备


1、来到我们的负载调度器在两台调度器上下载keepalived

192.168.115.128作为主

192.168.115.131作为备

yum -y install keepalived

2、配置主的keepalived

vim /etc/keepalived/keepalived.conf
####此处我就设置了一个虚拟IP192.168.115.200一个虚拟IP对应着我2个真实的web服务器IP
! Configuration File for keepalived
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL1       ##名字(主从不要一样)
   vrrp_skip_check_adv_addr
  #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_instance VI_1 {
    state MASTER              ##身份为主
    interface ens33           ##网卡
    virtual_router_id 51      ##主从 id要一致
    priority 100              ##优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.115.200     ###虚拟IP
    }
}
virtual_server 192.168.115.200 80 {         ##虚拟ip,下面对应的是2台web的真实ip
    delay_loop 6
    lb_algo rr                              ##轮询模式
    lb_kind DR                              ##这里我们是dr模式下进行的,所以设置为dr
    persistence_timeout 50
    protocol TCP
    real_server 192.168.115.131 80 {        ##web1真实IP
        weight 1
        SSL_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
      }
    }
    real_server 192.168.115.134 80 {       ##web2真实IP
        weight 1
        SSL_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
#########如果想配置多个虚拟IP,那么参照上面的方法照猫画虎###########

3、配置从负载调配器(建议使用scp把主的传输过来后修改比较省事)安装ipvsadm服务

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL2          ###服务名
   vrrp_skip_check_adv_addr
  #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_instance VI_1 {
    state BACKUP                ###角色
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.115.200
    }
}
virtual_server 192.168.115.200 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP
    real_server 192.168.115.131 80 {
        weight 1
        SSL_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.115.134 80 {
weight 1
        SSL_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

启动分别启动主备的keepalived并查看主备的ipvsadm策略,ip

1. ##启动
2. systemctl start keepalived
3. ##查看
4. ipvsadm -Ln

主ip

策略

备IP

策略

在这里说明一下,只要配置的keepalived是对的,启动keepalived后会自己根据配置文件生成策略

4、页面测试

这里访问是没什么问题的,并且是轮询,我们抓个包看看只有200的地址符合DR模式

四、测试


宕掉主调配器,观查是否还能实现轮询

查看备调度器IP,IP漂移说明主备生效了

访问网页,可以访问并且轮询正常

抓包,与之前一样

ok,配置成功


总结

这里主要理解的是keepalived与ipvsadm的关系;一般情况下启动了keepalived后ipvsadm也会启动,并且会根据keepalived的文件生成策略;相对而言keepalived的配置文件很长需要理解记忆,可以参考我上面的配置,这里主要就是理解配置文件,理清思路,在本实验中配置了大量的IP地址容易混淆。

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
2月前
|
负载均衡 网络协议 Linux
小白带你学习linux的keepalived+lvs和keepalived双机热备(三十七)
小白带你学习linux的keepalived+lvs和keepalived双机热备(三十七)
57 0
|
3月前
|
负载均衡 算法 网络协议
Keepalived+LVS搭建高可用负载均衡
Keepalived+LVS搭建高可用负载均衡
158 1
|
3月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
83 0
|
4月前
|
存储 负载均衡 网络协议
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
|
5月前
|
负载均衡 监控 Linux
LVS + keepalived
LVS + keepalived
56 1
|
5月前
|
存储 负载均衡 网络协议
LVS负载均衡群集—DR直接路由
LVS负载均衡群集—DR直接路由
58 0
|
5月前
|
负载均衡 测试技术
LVS+KeepAlived构建高可用集群
LVS+KeepAlived构建高可用集群
47 0
|
5月前
|
缓存 负载均衡 网络协议
LVS+KeepAlived快速入门2
LVS+KeepAlived快速入门2
79 0
|
1月前
|
缓存 负载均衡 应用服务中间件
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
在本章内容中,我们将深入探讨 Tomcat 服务器的运行架构、LVS 负载均衡的运行机制以及 Cache 缓存机制,并提供相应的解决方案和指导。通过理解这些关键概念和机制,您将能够优化您的系统架构,提高性能和可扩展性。
50 4
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
|
4月前
|
负载均衡 应用服务中间件 nginx
71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)
71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)
34 0