首页 > 其他分享 >负载均衡Keepalived+LVS

负载均衡Keepalived+LVS

时间:2024-09-25 13:22:44浏览次数:10  
标签:负载 LVS Keepalived keepalived dir1 192.168 nginx root

Keepalived+LVS

LVS架构中,不管是NAT模式还是DR模式,当后端的RS宕掉时,调度器依然会把请求转发到宕掉的RS上,这样的结果并不是我们想要的。其实,keepalived就可以解决该问题,它不仅仅有高可用的功能,还有负载均衡的功能。在调度器上只要安装了keepalived,就不用再安装ipvsadm了,也不用去编写LVS相关的脚本了,也就是说keepalived已经嵌人了LVS功能。完整的keepalived+LVS架构需要有两台调度器实现高可用,提供调度服务的只需要一台,另外一台作为备用。

1.基础准备

(1)准备3台机器

为了节省资源,我们只设置一台主keepalived,备用的暂时就省略掉了。下面为各机器的角色和IP。

主keepalived(调度器):192.168.147.130

真实服务器rs1:192.168.147.131

真实服务器rs2:192.168.147.132

VIP:192.168.147.110

(2)改名

分发器:

Rs1:

Rs2:

(3)安装yum源

在3台虚拟机上:

[root@master ~]# mkdir /opt/centos

[root@master ~]# mount /dev/cdrom /opt/centos

mount: /dev/sr0 写保护,将以只读方式挂载

[root@master ~]# mv /etc/yum.repos.d/* /media

[root@master ~]# vi /etc/yum.repos.d/local.repo

[centos7]

name=centos7

baseurl=file:///opt/centos

gpgcheck=0

enabled=1

2.安装keepalived

如果你的机器上还未安装过keepalived,则需要先安装,直接yum install -y keepalived即可。

[root@dir1 ~]# yum install -y keepalived

下面编辑keepalived的配置文件:

清空配置文件:

[root@dir1 ~]# > /etc/keepalived/keepalived.conf

添加如下内容:

vrrp_instance VI_1 {

    state MASTER

    interface ens33

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.147.110         

    }

}

virtual_server 192.168.147.110 80 {           #VIP

    delay_loop 10       #每隔10秒查询realserver状态

    lb_algo wlc                                #lvs算法

    lb_kind DR                                 #DR模式

    persistence_timeout 60           #(同一IP的连接60秒内被分配到同一台realserver)

    protocol TCP         #用TCP协议检查realserver状态

    real_server 192.168.147.131 80 {        #真实服务器ip

        weight 100           #权重

        TCP_CHECK {

            connect_timeout 10            # 10秒无响应超时(连接超时时间)

            nb_get_retry 3                     #失败重试次数

            delay_before_retry 3     #失败重试的间隔时间

            connect_port 80           #连接的后端端口

        }

}

     real_server 192.168.147.132 80 {

        weight 100

        TCP_CHECK {

            connect_timeout 10

            nb_get_retry 3

            delay_before_retry 3

            connect_port 80

        }

    }

}

3.配置

由于上一节(我的前一篇博客)刚刚执行过LVS的脚本,所以需要做一些操作:

把之前的ipvsadm规则清空:

[root@dir1 ~]# ipvsadm -C

可以把之前的vip删除掉:

[root@dir1 ~]# systemctl restart network

因为我们在keepalived的配置文件中定义的LVS模式为DR模式,所以还需要在两台rs上执行lvs_rs.sh脚本,这个脚本就是上一节设置的脚本。

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

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

做完准备工作后,在130上启动keepalived服务:

[root@dir1 ~]# systemctl restart network

[root@dir1 ~]# systemctl start keepalived

[root@dir1 ~]# ps aux |grep keepalived   //检查有无keepalived进程

root      11098  0.0  0.1 118688  1384 ?        Ss   19:25   0:00 /usr/sbin/keepalived -D

root      11099  0.0  0.3 129620  3336 ?        S    19:25   0:00 /usr/sbin/keepalived -D

root      11100  0.0  0.2 129488  2612 ?        S    19:25   0:00 /usr/sbin/keepalived -D

root      11105  0.0  0.0 112720   988 pts/0    S+   19:26   0:00 grep --color=auto keepalived

运行结果如下图所示:

4.测试

检验是否成功的方法也很简单,需要在浏览器直接访问vip192.168.147.110,然后故意把其中一台 rs的Nginx服务关掉,比如说关闭131的;然后再刷新浏览器看结果,刷新的时候需要使用组合键(Ctrl+F5)强制刷新浏览器,这样就不会有缓存数据了。

同时,也可以在调度器(130)上执行命令ipvsadm -ln查看连接数:

对应的rs只有一台131,然后再把132的Nginx服务启动,再来查看:

后端的rs又变成两台了,测试成功。

5.总结

●在dir上不仅要安装ipvsadm,三台服务器还要同时安装net-tools,否则配置完脚本缺少命令。

●在rs1和rs2上要提前安装并配置好nginx,(可以参考我的第一篇博客)否则真实服务器与vip无法连接。

●测试的时候要关闭131上的nginx或132上的nginx,再测试。

●关闭nginx

(1)进入nginx目录

        cd /usr/local/nginx/sbin

(2)快速停止nginx

    ./nginx -s stop

(3)完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx

    ./nginx -s quit 

标签:负载,LVS,Keepalived,keepalived,dir1,192.168,nginx,root
From: https://blog.csdn.net/Gao0Yuu/article/details/142520698

相关文章

  • linux集群 keepalived+nginx实现高可用集群
    用keepalived配置高可用搭建高可用集群高可用集群,即“HA集群”,也常称作“双机热备”,用于关键业务。常见实现高可用的开源软件有heartbeat和keepalived,其中keepalived还有负载均衡的功能。这两个软件类似,核心原理都是通过心跳线连接两台服务器,正常情况下由一台服务器提供服务,......
  • 什么是容性负载箱?
    容性负载箱是用于模拟电网中感性负载的装置,通常由电容器、电抗器等元件组成。在电力系统中,负载箱被广泛应用于测试和评估各种电气设备的性能,如变压器、发电机、开关设备等。容性负载箱的主要作用是模拟实际负载对电网的影响,以便在实验室环境中进行各种实验和研究。容性负载箱的电......
  • 四款负载均衡工具Nginx、HAProxy、MetalLB、gobetween 比较
    以下是对Nginx、HAProxy、MetalLB和gobetween四个开源负载均衡工具的详细对比与分析:Nginx:优点:工作在网络的7层之上,可以针对HTTP应用做一些分流策略,如基于域名、目录结构分流。对网络稳定性依赖小,理论上能ping通就能进行负载均衡。安装和配置简单,有清晰的日志用于排查和管理。支持......
  • # 高可用的并发解决方案nginx+keepalived(三)
    高可用的并发解决方案nginx+keepalived(三)一、Nginx搭建图片服务器针对任何站点,几乎都要访问图片,而一个网页里面几乎有好些张图片,这时候会占据大量tomcat连接,造成大量并发,我们可以通过Nginx配置直接访问硬盘里的图片,绕开tomcat。1、在CentOS7服务器上,创建/usr/local/im......
  • HAproxy,nginx实现负载均衡
    环境准备:192.168.88.25 (client)192.168.88.26  (HAproxy)192.168.88.27   (web1)192.168.88.28    (web2)192.168.88.29   (php1)192.168.88.30    (php2)关闭firewalld,selinux。配置yum源,扩展源epel-release实验1一、web1,web21、下载httpd......
  • 直流负载箱的主要功能有哪些?
    直流负载箱是专门用于模拟和测试直流电源系统负载的设备,其主要功能包括以下几点:直流负载箱可以模拟各种不同类型的负载,如电阻、电感、电容等,以满足不同应用场景的需求。通过调整负载箱的参数,可以实现对直流电源系统的精确模拟,为电源系统的研发、测试和优化提供有力支持。直流负载......
  • D23 kubernetes 工作负载资源对象-Job与CronJob
    1、简介 Deployment和DaemonSet资源主要用于部署和管理守护进程型的应用程序,如nginx、mysql、java进程等。这类应用程序的特点是持续运行,通常在没有明确停止或下线的情况下一直保持运行状态。此外,kubernetes还提供了Job和CronJob资源,用于管理一次性任务和定时任务,如计算任务、数......
  • Linux集群负载均衡DR模式LVS搭建
    负载均衡DR模式LVS搭建1.基础准备(1)准备3台机器DR模式需要三台虚拟机,三台虚拟机只需要有“公网”IP,但在这种模式下又多了一个VIP。对应的机器和IP如下:调度器dir:192.168.147.130真实服务器rs1:192.168.147.131真实服务器rs2:192.168.147.132VIP:192.168.147.110(2)改名分发......
  • 跑lvs出现soft connect怎么处理?
      首先,我们先了解一下什么是softconnect。简而言之,就是工具会将所有连接在psub上的信号认作softconnect(也就是short)。如图1所示,VSS和AVSS都接到了p+上,它们通过psub便有了softconnect。    如果有softconnect的话,lvs是没法pass的,会发现很多一堆stdcell连接了错......
  • kafka负载均衡迁移(通过kafka eagle)
    在grafana监控中发现kafka的各个节点磁盘不均匀出现这样的情况是因为kafka默认是以文件数作为平衡的条件的。换句话说,kafka不会管一个副本有多大,只会看磁盘中有多少个副本文件。解决方式:1、修改策略,改为按照磁盘大小平衡数据2、手动迁移数据,将磁盘使用率高的节点数据迁移......