Keepalive基础

news/2025/2/24 15:29:30

一。简介和功能

vrrp协议的软件实现,原生设计目的是为了高可用ipvs服务

功能:

1.基于vrrp协议完成地址流动

2.为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)

3.为ipvs集群的各RS做健康状况检测

4.基于脚本调用接口完成脚本中的跟中定义的功能,进而影响集群事务,以此支持nginx,haproxy等服务

二。keepalived环境准备

安装:yum install keepalived

配置文件:vi /etc/keepalived/keepalived.conf

模块一:全局模块

模块二:VIP模块

主配置master配置:

备份backup配置:

使用ip a查看是否自动东生成子网卡下的ip地址

检测ip是否有效:tcpdump -i 网卡名 -nn host 组播地址

三。keepalived的常见用法

1.其他主机ping通keepalived虚拟ip

当keepalived配置了虚拟ip后,其他的主机不能进行ping通ip(防火墙默认关闭了keepalived)

解决方法:vi /etc/keepalived/keepalived.conf (主备keepalive均配置)

2.实现keepalived的日志分离

解决方法: vi /etc/sysconfig/keepalived (指定采集日志的id为0-7之间)

vi /etc/rsyslog.conf 

最后重启keepalived检查是否存在/var/log/keepalived这个文件,且里面内容为keepalived的内容

3.独立出子配置文件

解决方法:vi /etc/keepalived/keepalived.conf(先注释整段)

mkdir -p /etc/keepalived/conf.d

vi /etc/keepalived/conf.d/keepalived.conf

4.抢占模式和非抢占模式:

默认抢占模式为preempt,即当高优先级的主机恢复在线后,会抢占优先级低的master角色,这样会导致vip在KA主机中来回漂移,导致网络抖动

建议设置抢占模式为非抢占模式nopreempt,即优先级主机恢复后,并不会抢占优先级主机master的角色,非抢占模块下,如果原主机down机,vip迁移至新主机后,后续也会发生down时,任会将vip迁回主机

配置方法:vi /etc/keepalived/keepalived.conf (两台主机均改为BACKUP,且设置为nopreempt)

5.VIP单波配置

默认keepalived主机之间利用多播相互通告消息,会造成网络拥堵,可以换成单薄,减少网络流量

解决方法: vi /etc/keepalived/keepalived.conf (两主机之间的ip写相反的ip)

检测方法:tcpdump -i ens160 -nn src host 192.168.142.133 and dst host 192.168.142.135看源到目的ip是否有精确ip,而不是组播地址

6.实现master/master的keepalived双主模式:

master/stave的单主模式,同一时间只有一个keealived对外提供服务,此主机比较繁忙,而另外一台主机却空闲,利用率低下,可以使用双主模式解决问题

解决方法: vi /etc/keepalived/keepalived.conf

主机甲:

主机乙:

四。实现IPV4的高可用性

1.DR的配置:

(1)客户机配置:(所有均配置虚拟vip,并且与keepalived的相同)

ip a a 192.168.142.20/32 dev lo:为各个主机添加VIP

vi /etc/sysctl.conf:编辑配置文件

sysctl -p:重启服务

(2)服务器配置:

yum install ipvsadm -y:下载ipvs

 vi /etc/keepalived/keepalived.conf(备用机也配置)

systemctl restart keepalived:重启

进行测试:

五。VRRP Script配置

keepalived利用VRRP Script技术,可以调用外部的辅助脚本进行资源监控,并根据监控的结果实现优先动态调整,从而实现其他应用的高可用性功能

vi /etc/keepalived/test.sh

chmod +x /etc/keepalived/test.sh


 vi /etc/keepalived/keepalived.conf 

存在文件,返回值为非0(weight生效,优先级减去权重),不存在返回值为0(weight不生效)

六。实战案例:实现haproxy的高可用

目的:可以解决当一台服务器的haproxy失效后,可以将ip进行转移到另外一台上面,实现高可用

服务器

1.vi /etc/sysctl.conf (不进行设置,双方服务器之间的ip无法识别,启动不了haproxy)

2.yum install haproxy -y
3.vi /etc/haproxy/haproxy.cfg (两台服务器复制一样的vip,为了让一台失效,另外一台能继续运行)

4.vi /etc/keepalived/test.sh

5. chmod +x /etc/keepalived/test.sh 

6.vi /etc/keepalived/keepalived.conf 

7.systemctl restart keepalived

客户机

1.ip a d 192.168.142.20/32 dev lo:删除以前的vip

2.vi /etc/sysctl.conf:关闭设置

同时服务器要进行关闭以前的ipvsadm配置

七.邮件模式:

下载软件:yum install mailx -y

vi /etc/mail.rc

测试: echo "hello word" | mail -s test 12345678@qq.com


http://www.niftyadmin.cn/n/5864526.html

相关文章

C++/JavaScript ⭐算法OJ⭐用两个队列实现栈

题目描述 225. Implement Stack using Queues Implement a last-in-first-out (LIFO) stack using only two queues. The implemented stack should support all the functions of a normal stack (push, top, pop, and empty). Implement the MyStack class: void push(int…

AI助力小微企业技术开发规范化管理 | 杂谈

AI助力小微企业技术开发规范化管理 在小型技术研发企业中,人员配置紧张,往往一名员工需要承担多项职务和任务。例如,后端程序开发人员可能同时要负责需求调研、数据库设计、后端设计及开发,甚至在某些情况下还需兼任架构师的角色。…

Github 2025-02-23 php开源项目日报 Top9

根据Github Trendings的统计,今日(2025-02-23统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9JavaScript项目2Shell项目1TypeScript项目1Blade项目1Java项目1ASP项目1Vue项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:…

彻底卸载kubeadm安装的k8s集群

目录 一、删除资源 二、停止k8s服务 三、重置集群 四、卸载k8s安装包 五、清理残留文件和目录 六、删除k8s相关镜像 七、重启服务器 一、删除资源 # 删除集群中的所有资源,包括 Pod、Deployment、Service,任意节点执行 kubectl delete --all pod…

mysql的源码包安装

安装方式一:(编译好的直接安装) 1.添加一块10G的硬盘,给root逻辑卷扩容 (下面安装方式二有,一模一样的装就行,我就不写了,再写的话篇幅就太长了) 2.下载编译好的源码包…

数据库增删查改sql语句

一、数据库、表的建立/删除 新建数据库: create database 数据库名; #create database students; #新建一个students的数据库 新建表: 在建表之前,需要指定在哪个数据库下建表,使用use 数据库名; 接下来就可以建表了&#xff…

电子技能大赛选题

关于电子技能大赛的选题,我们需要综合多方面因素去考虑,比如难度,炫酷程度,能接受的成本,进度能不能掌控,有哪些难点需要攻破,能从外部获得什么资源等等。比如小车,会有一些结构件的…

前后端分离系统架构:基于Spring Boot的最佳实践

前后端分离系统架构图描绘了一个基于Springboot的前端后台分离的系统架构。它强调了前端(客户端)与远程(服务器)的解耦,通过API接口进行交互,分别独立开发和部署。 前后端分离系统架构图 从上到下&#xff…