lvs加keepalive高可用集群

lvs集群当中的高可用架构只是针对调度器的高可用

基于vrrp来实现调度器的主和备

高可用的HA架构

主调度器和备调度器(多台)

在主调度器正常工作的时候,备完全处于冗余状态(待命),不参与集群的运转,只有当主调度器出现故障时,备才会承担主调度器的工作。主调度器恢复功能后,主继续做为集群的入口,备继续处于冗余状态(取决于优先级)

keepalive基于vrrp协议来实现lvs高可用的方案

1、组播地址:

224.0.0.18,根据组播地址来进行通信,主和备之间发送报文,确定对方是否存活

2、根据优先级的大小来确定主和备的位置

3、故障切换,主挂了,备来继续工作,主恢复了,备继续等待

4、主和备之间的切换是vip地址的切换

keepalive是专门为了lvs而出现的,但是不是lvs专用的

keepalive是调度器的高可用

vip地址主备之间的切换,主在工作时,vip地址只在主上,主停止工作,vip漂移到备服务器

在主备的优先级不变的情况下,主恢复工作,vip会漂移回到主服务器

1、配优先级

2、配置vip和真实服务器

3、主备的id要一致

4、主备的id要区分

keepalive也可以使用nginx,haproxy

keepalive+nginx实现高可用

*问:脑裂是什么?

HA架构(高可用架构)中的一个特殊现象,只要使用VIP地址代理的冗余模式的高可用,都有可能出现脑裂的问题。即主和备同时都有VIP地址。

主和备无法确定各自的身份,同时出现了VIP地址,两边都起来了,但两边都无法使用。

可能原因:

1、keepalive的配置文件问题

2、心跳线(网线)断了,老化

3、网卡问题(硬件),ip地址配置冲突

4、防火墙的策略,iptables的策略,屏蔽了组播的地址广播,屏蔽了vrrp协议的报文

5、两台服务器的时间不同步也可能导致

6、其他的服务配置对心跳线的检测造成了干扰

怎么解决脑裂?

1、检查硬件,网卡,网线等

2、查看主备节点的keepalived日志,查看具体报错信息,定位问题

3、检查端口冲突和监听设置,确保其他服务没有占用keepalived使用的VIP或者监控端口。

4、查看配置文件,检查IP地址配置、心跳线检测的间隔和超时时间等配置是否合理

5、查看防火墙策略,确定心跳线检测消息没有被屏蔽

6、查看服务器网络状态,以及时间是否同步

7、准备两条心跳线,这样一条坏了,另一条仍然能继续传送

keepalive实验:

test1 192.168.233.10 主

test2 192.168.233.50 备

vip 192.168.233.100

nginx1 192.168.233.20

nginx2 192.168.233.30

客户端 192.168.233.40

步骤

1.主和备都要同样操作

yum -y install ipvsadm keepalived

vim /etc/sysctl.conf

net.ipv4.ip_forward=0

net.ipv4.conf.all.send_redirects=0

net.ipv4.conf.default.send_redirects=0

net.ipv4.conf.ens33.send_redirects=0

sysctl -p

ipvsadm -C

ipvsadm -A -t 192.168.233.100:80 -s rr

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.20:80 -g

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.30:80 -g

ipvsadm-save >/etc/sysconfig/ipvsadm

systemctl restart ipvsadm

ipvsadm -ln

2、修改主的配置文件

cd /etc/keepalive

vim keepalived.conf

3、修改备的配置文件

实验结果:

keepalive+nginx实现高可用(主备切换)

数据流向:
实验步骤:

1.vim check_nginx.sh

写一个check_nginx.sh的脚本

复制代码
#!/bin/bash
/usr/bin/curl -I http://localhost &> /dev/null
if [ $? -ne 0 ]
then
systemctl stop keepalived
fi

2、主的配置

chmod 777 check_nginx.sh

cd /etc/keepalived/

vim keepalived.conf

script "/opt/check_nginx.sh"

调用脚本内容,检测nginx的状态

interval 5

检测的间隔时间是5s

可以删除这个后面的所有内容并添加监控配置

重启

systemctl restart nginx

systemctl restart keepalived

3、备的配置

把主的配置复制到备进行修改

scp root@192.168.233.20:/etc/keepalived/keepalived.conf /etc/keepalived/

cd /etc/keepalived/

vim keepalived.conf

实验结果

如果主nginx停止 keepalive也自动停止 备启用,vip偏移到备上

相关推荐
70asunflower16 分钟前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
那就回到过去42 分钟前
VRRP协议
网络·华为·智能路由器·ensp·vrrp协议·网络hcip
极客小云1 小时前
【ComfyUI API 自动化利器:comfyui_xy Python 库使用详解】
网络·python·自动化·comfyui
神梦流1 小时前
GE 引擎的内存优化终局:静态生命周期分析指导下的内存分配与复用策略
linux·运维·服务器
凡人叶枫1 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [drivers][input]serio
linux·笔记·学习
符哥20081 小时前
用Apollo + RxSwift + RxCocoa搭建一套网络请求框架
网络·ios·rxswift
xuhe21 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
相思难忘成疾1 小时前
通向HCIP之路:第四步:边界网关路由协议—BGP(概念、配置、特点、常见问题及其解决方案)
网络·华为·hcip
Lsir10110_2 小时前
【Linux】进程信号(下半)
linux·运维·服务器