keepalived与lvs

news2024/9/25 19:24:39

1 lvs

Linux服务器集群系统(一) -- LVS项目介绍

LVS(Linux Virtual Server)即Linux虚拟服务器,是一个基于Linux操作系统的虚拟服务器技术,用于实现负载均衡和高可用性章文嵩,是中国国内最早出现的自由软件项目之一。

 2 lvs发展史

在 Linux 2.2 内核时期,LVS 最初是以内核补丁的形式存在的,这意味着它不是直接集成到 Linux 内核中的,而是作为附加的补丁集来实现功能。

集成到 Linux 内核2.4.23 版本:

从 Linux 2.4.23 版本开始,LVS 的核心组件 IPVS (IP Virtual Server) 被正式合并到 Linux 内核中,成为官方内核的一部分。这意味着用户不再需要单独下载和安装补丁集来使用 LVS 功能

3 lvs组由ipvs和ipvsadm组成

LVS 是一个负载均衡框架,它定义了如何使用负载均衡器来分发网络请求的基本规则和架构

ipvs 是 LVS 中实现负载均衡的核心模块,它负责具体的负载均衡任务(虚拟出IP)

ipvsadm:是一个Linux内核中的IP负载均衡工具

4 LVS三种主要的工作模式

 NAT   TUN(隧道)   DR 

NAT:上行下行都走lvs,lvs压力爆大 ,但是安全,

TUN:上行走lvs,下行直接去客户端,lvs压力不大,但是内服务器ip直接暴漏给外网,非常不安全

DR:上行走lvs,下行走路由,路由会虚拟一个IP,lvs压力不大,还安全

5 keepalivde +lvs 高可用

准备:俩台干净的虚拟机(至少没用过nginx,keepalivde)

lvs-1   61     lvs-2  62       

两台机子

yum -y install keepalived     用到keepalivde

   yum install psmisc  -y        用killall  keepalivde  di

lvs-1     vim /etc/keepalived/keepalived.conf

[root@Lvs-1 ~]#  vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_27
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
   #虚拟的IP,网段要和lvs的网段一样
    virtual_ipaddress {
        192.168.58.66
    }
}
#lvs配置
virtual_server 192.168.58.66 49151 {
 #每个6秒检查realserver是否存活
    delay_loop 6
 #lb=loadbalance负载均衡算法,rr轮询
    lb_algo rr
 #lvs三种模式NAT|TUN隧道|DR
    lb_kind DR
 #一个请求固定到一个服务器上的时间 单位秒
    persistence_timeout 5
 #请求方式TPC|UPD
    protocol TCP
 #真实服务器配置,这两是装有tomcat的真实ip
    real_server 192.168.58.41 49151 {
       #权重
        weight 1
            #超时时长
            connect_timeout 3
             #重试次数
            nb_get_retry 3
             #重试时间间隔
            delay_before_retry 3
    }


    real_server 192.168.58.42 49151 {
        weight 1
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
}

lvs-2   vim /etc/keepalived/keepalived.conf

[root@Lvs-2 ~]# vim /etc/keepalived/keepalived.conf 

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_28
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.58.66
    }
}
virtual_server 192.168.58.66 49151 {
 #每个6秒检查realserver是否存活
    delay_loop 6
 #lb=loadbalance负载均衡算法,rr轮询
    lb_algo rr 
 #lvs三种模式NAT|TUN隧道|DR
    lb_kind DR
 #一个请求固定到一个服务器上的时间 单位秒
    persistence_timeout 5 
 #请求方式TPC|UPD
    protocol TCP
 #真实服务器配置
    real_server 192.168.58.41 80 {
       #权重 
        weight 1
            #超时时长
            connect_timeout 3
             #重试次数
            nb_get_retry 3
             #重试时间间隔
            delay_before_retry 3
    }       
    
    real_server 192.168.58.42 80 {
        weight 1
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }   
}

两台机子 都有的操作

  cat cat /var/log/messages  (可能会报这种错),无伤大雅,继续干

Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'connect_timeout'
Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'nb_get_retry'
Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'delay_before_retry'
Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'connect_timeout'
Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'nb_get_retry'
Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'delay_before_retry'

    ipvsadm -C                 

    ipvsadm -Ln

    service keepalived start

    ipvsadm -Ln  

在浏览器输入虚拟IP+装有tomcat机子配的端口号(如果配的是80,只用输虚拟IP就行)

192.168.58.66:49151

5.5   给tomcat配置虚拟ip   前后呼应

两台tomcat机子一样的操作    192.168.58.66虚拟ip

cp /etc/sysconfig/network-scripts/ifcfg-lo  /etc/sysconfig/network-scripts/ifcfg-lo:1

vim /etc/sysconfig/network-scripts/ifcfg-lo:1

刷新lo网卡:

ifup lo   或者service network restart

查看:

ip  a

6测试

在浏览器输入虚拟IP+装有tomcat机子配的端口号后出现项目页面

win+r  cmd   

黑窗口敲 arp -a   192.168.58.66 

这是lvs-1的mac地址

在lvs-1:

    killall keppalived

 ipvsadm -C      清除所有当前的LVS配置

 ipvsadm -Ln     列出当前的LVS配置

再次在黑窗口敲 arp -a   192.168.58.66 发现mac地址变了

变成vs-2的mac地址

这样就成功了

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

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

相关文章

Circuitjs 快捷键完全列表

对于常见组件, 反复通过菜单去选择也是比较繁琐的, 系统考虑到这一点, 也为那些常用组件添加了快捷键. 通过 菜单--选项--快捷键... 可以查看所有快捷键, 分配新的快捷键或调整现有的快捷键. 点开菜单时, 位于菜单右侧的那些字母即是对应的快捷键, 如下图所示: 注: 旧版本有, …

Debug-022-el-upload照片上传-整体实现回顾

前情概要: 最近业务里通过el-upload实现一个上传图片的功能,有一些小小的心得分享给各位。一方面是review一下,毕竟实现了很多细小的功能,还有这么多属性、方法(钩子)和碰到的问题,感觉小有成就…

Swing中如何实现快捷键绑定和修改

在许许多多市面上常见的桌面软件中, 可以使用快捷键操作, 比如像微信一样,使用AltA 可以打开截图窗口,如果不习惯于AltA按键时,还可以打开设置去修改。 如果在swing中也想实现一个快捷键绑定和修改的操作,那么应该如何操作&#…

《计算机操作系统》(第4版)第8章 磁盘存储器的管理 复习笔记

第8章 磁盘存储器的管理 一 、外存的组织方式 1. 连续组织方式(连续分配方式) (1)概述 ①定义 连续组织方式要求为每一个文件分配一组相邻接的盘块。磁盘空间的联系组织方式如图8-1所示。 ②记录方法 在目录项的“文件物理地址”字段中记录该文件第一个记录所在的盘块号和文件…

【Docker深入浅出】Docker引擎架构介绍

文章目录 一. docker引擎介绍1. Docker daemon:实现Docker API,通过API管理容器2. containerd:负责容器的生命周期3. runc:用于创建和启动容器 二. 启动容器的过程1. 启动过程2. docker daemon的维护不会影响到运行中的容器3. shi…

依靠 VPN 生存——探索 VPN 后利用技术

执行摘要 在这篇博文中,Akamai 研究人员强调了被忽视的 VPN 后利用威胁;也就是说,我们讨论了威胁行为者在入侵 VPN 服务器后可以用来进一步升级入侵的技术。 我们的发现包括影响 Ivanti Connect Secure 和 FortiGate VPN 的几个漏洞。 除了漏洞之外,我们还详细介绍了一组…

C语言试题(含答案解析)

单选 1.下面C程序的运行结果为&#xff08;&#xff09; int main(void) {printf("%d", B < A);return 0; }A.编译错误 B.1 C.0 D.运行错误 A’的ascii码值为65&#xff0c;‘B’的ascii码值为66&#xff0c;‘B’<‘A’是不成立的&#xff0c;返回0&#xf…

spring学习(1)

目录 一、是什么 二、IOC思想 2.1 IOC创建对象的方式 三、Spring的配置 3.1 别名 3.2 Bean的配置 3.3 import 四、DI依赖注入 4.1 构造器注入 4.2 Set方式注入【重点】 4.3 拓展方式注入 五、Bean的自动装配 5.1 byName自动装配 5.2 byType自动装配 5.3 注解实现…

Vue小知识大杂烩

一、Vue组件的三大部分&#xff1a;template、Script、Style template --> 组件的模板结构 写html的地方 注意&#xff1a;<template> 是 vue 提供的容器标签&#xff0c;只起到包裹性质的作用&#xff0c;它不会被渲染为真正的 DOM 元素。 script -> 组件的…

超声波清洗机什么牌子值得入手? 清洁力好的超声波清洗机推荐

对于眼镜佩戴人士而言&#xff0c;超声波清洗机无疑是清洁神器&#xff01;它凭借高频振动技术&#xff0c;能深入眼镜的每一细微处及手洗难以触及的缝隙&#xff0c;有效清除顽固污渍&#xff0c;不仅大幅提高清洁效率&#xff0c;而且清洁质量远胜传统方法。随着超声波清洗机…

Linux下快速搭建七日杀官方私人服务器教程

今天给大家分享一下七日杀的个人开服教程&#xff0c;本教程基于Linux系统开发&#xff0c;推荐有一定基础的小伙伴尝试&#xff01;如果你没有Linux的基础但实在想开的小伙伴可以根据以下教程一步步进行操作&#xff0c;后续这边也会上架对应视频操作 架设前准备&#xff1a; …

Redis篇三:在Ubuntu下安装Redis

文章目录 1. 安装Redis2. 更改Redis的IP3. 使用redis自带的客户端来连接服务器4. Redis的客户端介绍 1. 安装Redis sudo apt install redis2. 更改Redis的IP 刚安装的Redis的ip是一个本地环回的ip&#xff0c;也就是只能由当前主机上的客户端进行访问&#xff0c;跨主机就访问…

IO进程线程 0823作业

作业 创建子父进程&#xff0c;子进程将1.txt内容拷贝到2.txt中&#xff0c;父进程将3.txt内容拷贝到4.txt中。 #include <myhead.h> int main(int argc, const char *argv[]) {pid_t ID;ID fork();if(ID > 0){int fd1;fd1 open("./3.txt",O_RDONLY);if(…

js 键盘监听 组合键

今天分享如何快速实现js快捷键监听 所需环境&#xff1a; 浏览器js 实现目标 mac/win兼容&#xff0c;一套代码&#xff0c;多个平台支持快捷键监听/单按键监听事件是否冒泡可设置使用方式简单快速挂载与卸载4行代码实现组合键监听 代码原理 把键盘监听事件挂载在documen…

c#-DataGridView控件实现分页

有时候我们需要进行分页显示&#xff0c;第一方面是在大数据量下可以降低卡顿&#xff0c;另一方面也是方便查找。 首先划重点&#xff0c;如果卡顿&#xff0c;不要用单元格填充的方式去刷新&#xff0c;用绑定数据源的方式比较高效&#xff01; 下面重点讲如何使用数据源绑定…

正式收官!阿里云携手优酷,用AI重塑影视IP创新边界

影视行业的新一轮创作风潮&#xff0c;将由AI掀起。 GPT和Sora等先进AI模型的出现&#xff0c;带动影视行业进入一场前所未有的创意变革。当前&#xff0c;在角色创作、脚本生成、营销策略等方面&#xff0c;AI已经展现了强大的潜力。而作为影视创作的“灵魂”&#xff0c;影视…

重新审视 ChatGPT 和 Elasticsearch:RAG 真正将应用程序紧密结合在一起

作者&#xff1a;来自 Elastic Jeff Vestal 关注博客 ChatGPT 和 Elasticsearch&#xff1a;OpenAI 遇到私人数据。 在此博客中&#xff0c;你将了解如何&#xff1a; 创建 Elasticsearch Serverless 项目创建推理端点以使用 ELSER 生成嵌入使用语义文本字段进行自动分块并调…

SpringBoot如何进行全局异常处理?

1.为什么需要全局异常处理&#xff1f; 在日常开发中&#xff0c;为了不抛出异常堆栈信息给前端页面&#xff0c;每次编写Controller层代码都要尽可能的catch住所有service层、dao层等异常&#xff0c;代码耦合性较高&#xff0c;且不美观&#xff0c;不利于后期维护。 应用场…

基于java的少儿编程网上报名系统+vue

TOC ssm006基于java的少儿编程网上报名系统vue 研究背景 近年来&#xff0c;随着网络技术的不断发展&#xff0c;越来越多人在网站查询各种信息&#xff0c;少儿编程网上报名系统对用户和管理员都有很大帮助&#xff0c;少儿编程网上报名系统通过和数据库管理系软件协作来实…

基于STM32开发的智能安防报警系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化传感器数据采集与处理报警控制与通知Wi-Fi通信与远程监控应用场景 家庭安防管理商铺和办公室的智能安防常见问题及解决方案 常见问题解决方案结论 1. 引言 随着智能家居和物联网技…