Keepalived+LVS部署

news2024/12/26 9:32:35

目录

一、环境准备

二、实验拓扑

三、部署LVS DR环境

四、LVS服务器配置keepalived

1、安装keepalived

2、修改lvs1服务器keepalived配置

3、修改lvs2服务器keepalived配置

五、客户端测试

1、负责均衡测试

2、LVS服务器高可用测试


一、环境准备

准备4台centos服务器和一台客户端

服务器主机名IP备注
客户端/192.168.2.5/
LVS服务器1lvs1

DIP:[ens33]192.168.2.10/24

VIP:[ens33]192.168.2.100/24

关闭selinux和firewalld
LVS服务器2lvs2

DIP:[ens33]192.168.2.11/24

VIP:[ens33]192.168.2.100/24

关闭selinux和firewalld
Web服务器1web1

DIP:[ens33]192.168.2.20/24

VIP:[ens33]192.168.2.100/32

关闭selinux和firewalld
Web服务器2web2

DIP:[ens33]192.168.2.20/24

VIP:[ens33]192.168.2.100/32

关闭selinux和firewalld

二、实验拓扑

 实验目标:在LVS-DR模式的基础上,使用keepalived对LVS服务器的VIP实现高可用。

三、部署LVS DR环境

参考:LVS-DR模式部署_桂安俊@kylinOS的博客-CSDN博客

其中将LVS服务器环境复制一份,建立2台主备LVS服务器,并将LVS服务器的VIP配置删除,下面用keepalived实现LVS服务器的VIP,并实现VIP高可用。

四、LVS服务器配置keepalived

1、安装keepalived

#lvs1和lvs2服务器都执行
yum install keepalived -y

systemctl enable keepalived

ipvsadm -C   #清空lvs规则

2、修改lvs1服务器keepalived配置

vim /etc/keepalived/keepalived.conf   #内容如下
! Configuration File for keepalived

global_defs {
   router_id lvs1   #设置路由ID,每个节点设置不一样  
   vrrp_iptables    #禁止设置防火墙规则,默认会自动添加防火墙拒绝所有
}

vrrp_instance VI_1 {
    state MASTER       #主服务器Master
    interface ens33       #网卡名
    virtual_router_id 51  #主辅VRID号必须一致
    priority 100            #服务器优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.100   #虚拟IP
    }
}

#LVS规则配置
virtual_server 192.168.2.100 80 {    #LVS VIP和端口
    lb_algo rr        #设置LVS调度算法为rr,轮询
    lb_kind DR        #设置LVS模式为DR模式
    #persistence_timeout 50    #开启后,客户端在指定时间(单位秒)内始终访问相同服务器,这里为了实验效果先关闭,生产环境应开启
    protocol TCP      #设置TCP协议

    real_server 192.168.2.20 80 {    #设置后端web服务器真实IP和端口
        weight 1                     #设置权重为1
	TCP_CHECK {                  #对后台real_server做健康检查,比如这里检查192.168.2.20的80端口是否正常
            connect_timeout 3        #每次连接超时时间为3秒
            nb_get_retry 3           #如果连不上,就试3次
            delay_before_retry 3     #每隔3秒检查一次
        }
    }
    real_server 192.168.2.30 80 {    #设置后端web服务器真实IP和端口
        weight 1                     #设置权重为1
	TCP_CHECK {                  #对后台real_server做健康检查
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
systemctl restart keepalived

ip a s ens33  #查看vip

ipvsadm -Ln  #查看lvs集群

3、修改lvs2服务器keepalived配置

vim /etc/keepalived/keepalived.conf   #内容如下
! Configuration File for keepalived

global_defs {
   router_id lvs2   #修改,与lvs1不同 
   vrrp_iptables    
}

vrrp_instance VI_1 {
    state BACKUP   #设置为backup       
    interface ens33    
    virtual_router_id 51  #和lvs1保持一致
    priority 50           #备机优先级比主master低一点         
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.100 
    }
}

virtual_server 192.168.2.100 80 {   
    lb_algo rr    
    lb_kind DR    
    #persistence_timeout 50  
    protocol TCP    

    real_server 192.168.2.20 80 {   
        weight 1                
	TCP_CHECK {          
            connect_timeout 3
            nb_get_retry 3   
            delay_before_retry 3  
        }
    }
    real_server 192.168.2.30 80 {
        weight 1                
	TCP_CHECK {            
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
systemctl restart keepalived

ipvsadm -Ln

五、客户端测试

1、负责均衡测试

2、LVS服务器高可用测试

将192.168.2.100所在服务器关机,查看VIP漂移到备机,并正常提供LVS负载均衡服务

注1:lvs也是自带健康检查的,如果web1宕机,lvs集群会自动剔除web1,当web1恢复正常后,lvs会将web1重新加入lvs集群。

注2:如果使用客户端浏览器测试轮询,应使用火狐浏览器(ctrl+f5强制刷新),使用谷歌和360浏览器测试发现不会轮询,始终访问的一个IP。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/21004.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习日记(单元测试、反射、注解、动态代理)

文章目录学习日记(单元测试、反射、注解、动态代理)一、单元测试1. 单元测试实践2. JUnit 常用注解二、反射1. 反射获取类对象2. 反射获取构造器对象3. 反射获取成员变量对象4. 反射获取成员方法对象三、反射的作用举例1. 绕过编译阶段为集合添加数据2. …

基于生物地理学的优化算法(BBO)用于训练多层感知器(MLP)【多种算法进行比较】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

java中的BigDecimal使用

文章目录1、什么是BigDecimal?2、为什么使用BigDecimal?3、如何使用BigDecimal?(1)BigDecimal初始化赋值(2)加减乘除运算(3)BigDecimal保留两位小数及舍入模式&#xff0…

WFP实现侧边栏导航菜单

菜单导航功能实现,常规的管理系统应该常用,左侧显示菜单条目,点击菜单,右侧切换不同的业务用户控件。 常用菜单可以采用TreeView树形控件特定样式实现 ,本文介绍的是使用ExpanderListView的组合形式实现的导航菜单&am…

算法day24|理论基础77

详细布置 理论基础 什么是回溯法:递归函数下面通常有回溯法 它使用的地方:组合,切割,子集,排列,棋盘问题(N皇后,解数独) 回溯算法的模板: void backtracking(参数)&…

微型计算机基础

微型计算机常用术语 位(bit):计算机所能表示的最基本,最小的数据单元。1个二进制位有两种状态0和1 通常情况下0表示低电平(接地),1表示高电平接电源(VCC) 字节&#xff0…

MATLAB 矩阵处理及多项式计算

一、实验目的 (1)掌握生成特殊矩阵以及矩阵处理的方法 (2)掌握数据统计和分析的方法 (3)掌握多项式的常用计算 二、实验原理与实验设备 原理:计算机编程相关知识技能和MATLAB软件编译环境 …

c++——map和set的封装

注:该封装基于前面博客已实现红黑树,map和set封装并不难,主要还是对红黑树的理解 目录 一. 改造红黑树 1. 改变节点的定义,使用更高维度的泛型 2. 红黑树追加迭代器的实现 1. 红黑树迭代器的构造函数和基本框架 2. begin()和e…

2.4、编码与调制

2.4、编码与调制 在计算机网络中。计算机需要处理和传输用户的文字,图片,音频和视频。它们可以统称为消息。 数据是运送消息的实体。 计算机中的网卡将比特 000 和 111,变换成相应的电信号发送到网线。 也就是说,信号是数据的…

[附源码]java毕业设计网络学习平台

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

LeetCode力扣刷题——更加复杂的数据结构

更加复杂的数据结构 一、引言 目前为止,我们接触了大量的数据结构,包括利用指针实现的三剑客和 C 自带的 STL 等。 对于一些题目,我们不仅需要利用多个数据结果解决问题,还需要把这些数据结构进行嵌套和联 动,进行更为…

五.STM32F030C8T6 MCU开发之RTC模块基础例程

五.STM32F030C8T6 MCU开发之RTC模块基础例程 文章目录五.STM32F030C8T6 MCU开发之RTC模块基础例程0.总体功能概述1.RTC硬件介绍1.1日历的功能1.2 闹钟输出1.3 入侵检测1.4 时间戳事件检测2.RTC软件配置2.1.RTC 模块初始化配置2.2 RTC 开始时间配置2.2.1RTC 年月日 时分秒配置2.…

_linux 进程间通信(管道)

文章目录1. 进程间通信目的2. 进程间通信发展3. 进程间通信分类4. 管道1. 进程间通信目的 数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息&#x…

【English】十大词性之介词

介词 文章目录介词前言一、方位介词1.1 某地1.2 里里外外1.3 上上下下1.4 前前后后1.5 ....中间1.6 ...穿越1.7 ...树上1.8 在...墙上1.9 旁边(距离远近区分)二、时间介词三、方式介词四、易混淆介词4.1 制成4.2 交通工具4.3 除了总结前言 介词是表示名词、代词与句子中其它词…

02Java线程模型

1. 操作系统线程 无论使用何种编程语言编写多线程程序,最终都是通过调用操作系统的线程来执行任务。线程是CPU调度的最小执行单元。 线程有多种实现方式,常见的有:内核线程、用户线程、混合线程。 不同线程模型的主要区别在于线程的调度方不…

【Ubuntu】配置ubuntu网络

配置ubuntu网络 一、三种虚拟网络介绍二、 配置ubuntu系统使用桥接模式连接外网三、通过NAT模式让ubuntu系统连接外网四、常见问题1.解决ubuntu系统没有网络图标一、三种虚拟网络介绍 VMnet0 : 桥接模式,选中桥接模式之后,可以将VMnet0桥接到对应的物理网卡之上, 默认选中自…

uniapp公共新闻模块components案例

uniapp公共新闻模块components案例 简介&#xff1a;本文使用uniapp的公共新闻模块讲解components案例。 效果展示&#xff1a; 第一步 创建公共模块 第二步 编写组件 <template><view class"newsbox"><view class"pic"><ima…

动态路由协议 OSPF 工作过程 之 状态机维度

状态机 &#xff1a; # 什么是状态机呢 &#xff1f; 状态机 &#xff1a; 就是 OSPF 路由间的邻居关系所在的不同阶段 不同的关系 就是 不同的状态机 OSPF 的状态机 &#xff1a; # 我们用 思科 的PPT 来介绍 OSPF 的状态机 # 里面所有黄颜色方框里 标定的就是 状态机…

Json格式API调试,taobao1688pinduoduo商品详情测试接口

Json常用类型 任何支持的类型都可以通过 JSON 来表示&#xff0c;例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。 对象&#xff1a;对象在 JS 中是使用花括号包裹 {} 起来的内容&#xff0c;数据结构为 {key1&#xff1a;value1, key2&#xf…

JavaScript:生成器函数

在介绍生成器函数之前先了解一下ES6的一个关键字&#xff0c;名为yield yield关键字&#xff0c;可以让代码在其出现的地方暂停执行&#xff0c;它只能在生成器函数内部使用。 生成器函数 生成器函数的语法比较简单在普通函数声明的时候在函数名前面添加一个*即可&#xff0…