KEEPALIVED的高可用实现

news2024/9/21 10:53:28

目录

一.高可用集群 

1.1 集群类型 

Keepalived 环境准备

1.2Keepalived 相关文件

1.3实验步骤

1.3.1HTTP配置

1.3.2安装KA

1.3.3实现master/slave的 Keepalived 单主架构

1.3.4抢占模式和非抢占模式

非抢占模式

抢占模式

抢占延迟模式 preempt_delay

1.3.5开启KA的日志功能

1.3.6独立子配置文件

1.3.7 VIP单播配置

1.3.8邮件服务器

编写邮件

编写脚本

1.3.9keepalived双主架构

1.3.10实现IPVS的高可用性

1.3.11Haproxy高可用


一.高可用集群 


1.1 集群类型 

LB:Load Balance 负载均衡
LVS/HAProxy/nginx(http/upstream, stream/upstream)
HA:High Availability 高可用集群
数据库、Redis
SPoF: Single Point of Failure,解决单点故障
HPC:High Performance Computing 高性能集群

Keepalived 环境准备

各节点时间必须同步:ntp, chrony

关闭防火墙及SELinux

4台rh7

vip 100

2台KA 110 120

两台 webserver 10 20

KA1172.25.250.110
KA2172.25.250.120
webserver1172.25.250.10
webserver2172.25.250.20

1.2Keepalived 相关文件

软件包名:keepalived 
主程序文件:/usr/sbin/keepalived
主配置文件:/etc/keepalived/keepalived.conf
配置文件示例:/usr/share/doc/keepalived/
Unit File:/lib/systemd/system/keepalived.service
Unit File的环境配置文件:/etc/sysconfig/keepalived

RHEL7中可能会遇到以下bug

systemctl restart keepalived #新配置可能无法生效

systemctl stop keepalived;systemctl start keepalived #无法停止进程,需要 kill 停 止

1.3实验步骤

1.3.1HTTP配置

两个RS上下载httpd

yum install httpd

启动httpd

写入网页文件

rs1和rs2都要写

在KA上curl测试访问

1.3.2安装KA

KA1,KA2都要安装

1.3.3实现master/slave的 Keepalived 单主架构

配置文件

vim /etc/keepalived/keepalived.conf

KA1--MASTER

KA2--SLAVE

重启服务

进行抓包

tcpdump -i eth0 -nn host 224.0.0.18

一开始一直是10

因为KA2优先级低抢不过KA1

把10关闭就会变成20

停止10的ka服务

1.3.4抢占模式和非抢占模式

默认为抢占模式preempt,即当高优先级的主机恢复在线后,会抢占低先级的主机的master角色,

这样会使vip在KA主机中来回漂移,造成网络抖动

建议设置为非抢占模式 nopreempt ,即高优先级主机恢复后,并不会抢占低优先级主机的master角色

非抢占模块下,如果原主机down机, VIP迁移至的新主机, 后续也发生down时,仍会将VIP迁移回原主机

注意:要关闭 VIP抢占,必须将各 keepalived 服务器state配置为BACKUP

即将所有ka服务器的虚拟路由器状态都改成BACKUP

以及添加nopreempt

非抢占模式

KA1

KA2

现在当KA1关闭后,vip移动给KA2后,KA1再重启也不会抢回vip

抢占模式

即有一个是master并且优先级最高

设置为抢占模式,当10重启就会直接抢夺vip

KA1

KA2

抢占延迟模式 preempt_delay

抢占延迟模式,即优先级高的主机恢复后,不会立即抢回VIP,而是延迟一段时间(默认300s)再抢回 VIP

preempt_delay

注意:需要各keepalived服务器state为BACKUP,并且不要启用 vrrp_strict

此处设置5s是为了方便查看结果

KA1和KA2都要设置这一项

1.3.5开启KA的日志功能

编辑日志配置文件并重启

1.3.6独立子配置文件

格式:

include /path/file

注释掉虚拟路由器

创建配置文件

写入注释掉的配置内容

然后重启服务

发现vip仍然存在

1.3.7 VIP单播配置

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

注意:启用 vrrp_strict 时,不能启用单播

格式

unicast_src_ip <IPADDR>  #指定发送单播的源IP
unicast_peer {
   <IPADDR>     #指定接收单播的对方目标主机IP
   ......
}

KA1

KA2

抓包查看

tcpdump -i eth0 -nn src host 172.25.250.20 and dst 172.25.250.10

要测20的要把10的keealive服务关掉

tcpdump -i eth0 -nn src host 172.25.250.20 and dst 172.25.250.10

1.3.8邮件服务器

keepalived配置文件 vim /etc/keepalived/keepalived.conf 

 KA1和KA2上面这global_def部分是一样的,注意都要写

我们利用qq邮箱来实现

进入qq优先点击右上角的账号与安全

在安全设置里面

找到下面的授权码

然后编写配置文件

/etc/mail.rc


编写邮件

看自己的邮箱能否收到邮件

然后KA2主机也这样配置

编写脚本

KA1配置

重启服务

两边都要写脚本

然后给脚本权限

chmod +x mail.sh

1.3.9keepalived双主架构

master/slave的单主架构,同一时间只有一个Keepalived对外提供服务,此主机繁忙,而另一台主机却 很空闲,利用率低下,可以使用master/master的双主架构,解决此问题。

master/master 的双主架构: 即将两个或以上VIP分别运行在不同的keepalived服务器,以实现服务器并行提供web访问的目的,提高 服务器资源利用率

两个vip对接一个服务

10上

额外设置一个vi_2虚拟路由

20上

20本来是backup 添加的虚拟路由v2就要设置成master

重启服务

记得优先级要进行改变,master的优先级都一样,backup的优先级也要一样

1.3.10实现IPVS的高可用性

110和120加

这个是vip的ip

然后禁止arp的响应,只进不出

然后120scp命令把文件复制过来再重启服务

KA1

ka2也这样做

KA1

vim /etc/keepalived/keepalived.conf 

KA2

重启服务

查看是否成功写入策略

在20上也能查看到策略只是没有生效,因为没有vip

另外开一台虚拟机进行测试

模拟故障,关闭110后

1.3.11Haproxy高可用

10 20下载haproxy

启用内核参数,两台都要做

这个作用是让本地没有写入的ip也能启用

编写haproxy配置文件

重启haproxy服务

110 120要删掉之前添加的环回ip以及打开arp响应

要注释掉keep的virt-server,也就是刚才ipvs中写的

编写脚本,杀死haproxy服务

ka1中

vim /etc/keepalived/keepalived.conf 
 

ka2

在测试机执行死循环

然后关闭一台KA的keepalived服务和haproxy服务,发现死循环还在执行

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

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

相关文章

习题2.38-2.39

2.38这个题目特别有意思,能比较深的理解什么是左侧优先右侧优先。先看看实现代码 ;;满足交换律,即操作函数的参数可相互交换,其结果不变 (defn fold-right[op initial sequences](if (empty? sequences)initial(op (first sequences)(accumulate op initial (rest sequence…

快讯 | 28页知网侵权函难挡秘塔AI:多家数据库抢着合作!

在数字化浪潮的推动下&#xff0c;人工智能&#xff08;AI&#xff09;正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展&#xff0c;捕捉行业动态&#xff1b;提供深入的新闻解读&#xff0c;助您洞悉技术背后的逻辑&#xff1b;汇聚行业专家的见解&#xff0c;…

使用 ESP32 和 TFT 屏幕显示实时天气信息 —— 基于 OpenWeatherMap API

实时监测环境数据是一个非常常见的应用场景&#xff0c;例如气象站、智能家居等。这篇博客将带你使用 ESP32 微控制器和一个 TFT 屏幕&#xff0c;实时显示当前城市的天气信息。通过 OpenWeatherMap API&#xff0c;我们能够获取诸如温度、天气情况以及经纬度等详细的天气数据&…

【书生大模型实战营(暑假场)闯关材料】基础岛:第1关 书生大模型全链路开源体系

【书生大模型实战营&#xff08;暑假场&#xff09;闯关材料】基础岛&#xff1a;第1关 书生大模型全链路开源体系 简介一、背景介绍1.1 背景介绍1.2 全链路开源开放体系的优势 二、全链路开源开放体系的主要特点2.1 模型组件的公开和共享2.2 数据集的公开和共享2.3 模型的互操…

2024年【汽车驾驶员(技师)】报名考试及汽车驾驶员(技师)模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 汽车驾驶员&#xff08;技师&#xff09;报名考试是安全生产模拟考试一点通生成的&#xff0c;汽车驾驶员&#xff08;技师&#xff09;证模拟考试题库是根据汽车驾驶员&#xff08;技师&#xff09;最新版教材汇编出…

Paimon实战 -- paimon原理解析

一.简介 Apache Paimon 原名 Flink Table Store&#xff0c;2022年1月在 Apache Flink 社区从零开始研发&#xff0c;Flink 社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合&#xff0c;促进数据在数据湖上真正实时流动起来&#xff0c;并为…

打靶记录12——Fawkes

靶机&#xff1a; https://download.vulnhub.com/harrypotter/Fawkes.ova这是个哈利波特系列的靶机&#xff0c;作者和本人都非常喜欢这个系列&#xff0c;因为它的漏洞和利用点都设计得很巧妙。 难度&#xff1a; 高 目标&#xff1a; 取得2个root权限 3 个flag 涉及攻…

学习二叉树遍历

class Node{ V value; Node left; Node reight; } 用递归和非递归两种方式实现二叉树的先序&#xff0c;中序&#xff0c;后续遍历 如何直观的打印一颗二叉树 如何完成二叉树的宽度优先遍历 递归序列 先序是出现的第一个数字&#xff0c;中序第二个&#xff0c;后续第三…

兼容并蓄,高效集成:EasyCVR视频综合接入能力助力多元化项目需求

随着视频技术的不断进步&#xff0c;视频监控、视频直播、执法记录仪、语音可视对讲、无人机等视频资源的应用场景日益丰富。这些视频资源不仅在数量上快速增长&#xff0c;而且在质量、格式、编码标准等方面也呈现出多样化的特点。因此&#xff0c;为了有效整合这些资源&#…

5.4 视图的创建与管理

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 工&#x1f497;重&#x1f497;hao&#x1f497;&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

【Datawhale X 魔搭 】AI夏令营第四期大模型方向,Task3:源大模型RAG实战(持续更新)

什么是RAG&#xff1f; RAG&#xff1a;检索增强生成&#xff08;Retrieval Augmented Generation&#xff09;。 RAG的提出背景&#xff1a; 在实际业务场景中&#xff0c;通用的基础大模型可能存在无法满足我们需求的情况&#xff0c;主要有以下几方面原因&#xff1a; 知识局…

AtCoder Beginner Contest 367 A~D

本期封面原图 画师えびら A - Shout Everyday 题意 b点睡觉c点起床&#xff0c;问你a点是不是醒着的 思路 直接判断即可&#xff0c;注意处理跨天的情况 代码 #include <bits/stdc.h> #define mod 998244353 using namespace std; typedef long long ll; typedef …

推荐 4 款知名免费的思维导图软件,强大跨平台好用,效率大大提升

TreeMind TreeMind树图是一款基于AI人工智能的在线思维导图工具&#xff0c;旨在通过简单的操作快速生成专业详尽的思维导图。它具有多种创新功能和丰富的资源库&#xff0c;能够极大地提高用户的学习和工作效率。 TreeMind树图的主要功能包括&#xff1a; AI一句话生成思维导…

汇编语言:div指令和mul指令

1. div指令 div 是除法指令&#xff0c;在8086CPU中&#xff0c;使用div做除法时&#xff0c;遵循以下规则&#xff1a; &#xff08;1&#xff09;除数&#xff1a;有8位&#xff08;1字节&#xff09;和16位&#xff08;2字节&#xff09;两种&#xff0c;放在一个寄存器&am…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——5.string(模拟实现)

1.存储结构 namespace zone {class string{public:private: //设置私有&#xff0c;不允许随便访问底层数据char* _str; //字符串存储空间首地址指针size_t _size; //当前字符数量size_t _capaicty; //可用容量static const size_t npos;}const size_t string::nops -1;//在类…

MATLAB中ichol函数用法

目录 语法 说明 示例 不完全 Cholesky 分解 使用 ichol 作为预条件子 使用 diagcomp 选项 ichol函数的功能是对矩阵进行不完全 Cholesky 分解。 语法 L ichol(A) L ichol(A,options) 说明 L ichol(A) 通过零填充执行 A 的不完全 Cholesky 分解。A 必须为稀疏方阵。…

西瓜书学习笔记三 归纳偏好

1.4 归纳偏好 通过学习得到的模型对应了假设空间中的一个假设。于是&#xff0c;图1. 2的西瓜版本空间给我们带来一个麻烦:现在有三个与训练集一致的假设&#xff0c;但与它们对应的模型在面临新样本的时候&#xff0c;却会产生不同的输出。现在有一个新瓜&#xff0c;一个模型…

希腊字母大写、小写、音标

▪Αα ▪Ββ ▪Γγ ▪Δδ ▪Εε或ϵ ▪Ϝϝ ▪Ζζ ▪Ηη ▪Θθ ▪Ιι ▪Κκ ▪Λλ ▪Μμ ▪Νν ▪Ξξ ▪Οο ▪Ππ ▪Ρρ ▪Σσ或ς ▪Ττ ▪Υυ ▪Φφ或ϕ ▪Χχ ▪Ψψ ▪Ωω

C语言学习——指针(定义、变量的指针和指向变量的指针变量)

目录 十、指针 10.1地址和指针的概念 10.2变量的指针和指向变量的指针变量 定义一个指针变量 指针变量的引用 指针变量作为函数参数 十、指针 10.1地址和指针的概念 我们要想了解什么是指针&#xff0c;就必须弄清楚数据在内存中是如何存储的&#xff0c;又是如何读取的…

利用EditPlus进行Json数据格式化

利用EditPlus进行Json数据格式化 git下载地址&#xff1a;https://github.com/michael-deve/CommonData-EditPlusTools.git (安装过editplus的直接将里面的json.js文件复制走就行) 命令&#xff1a;Cscript.exe /nologo “D:\Program Files (x86)\EditPlus 3\json.js” D:\P…