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偏移到备上

相关推荐
lixzest6 分钟前
Vim 快捷键速查表
linux·编辑器·vim
ICscholar6 小时前
ExaDigiT/RAPS
linux·服务器·ubuntu·系统架构·运维开发
sim20206 小时前
systemctl isolate graphical.target命令不能随便敲
linux·mysql
米高梅狮子7 小时前
4. Linux 进程调度管理
linux·运维·服务器
再创世纪8 小时前
让USB打印机变网络打印机,秀才USB打印服务器
linux·运维·网络
fengyehongWorld9 小时前
Linux ssh端口转发
linux·ssh
知识分享小能手10 小时前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04中的Shell编程详细知识点(含案例代码)(17)
linux·学习·ubuntu
yugi98783810 小时前
异构网络下信道环境建模方法及应用
开发语言·网络
Xの哲學11 小时前
深入解析 Linux systemd: 现代初始化系统的设计与实现
linux·服务器·网络·算法·边缘计算
龙月11 小时前
journalctl命令以及参数详解
linux·运维