LVS+Keepalived群集

Keepalived的原理

keepalived采用VRRP热备份协议是西安Linux服务器的多级热备功能

VRRP是针对服务器的一种备份解决方案

由多台服务器组成一个热备组,通过共用的虚拟IP地址对外提供服务

每个热备份组内同时只有一台主服务器提供服务,其他服务器处于冗余状态

若当前在线的路由器失效,则其他服务器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

双击热备的故障切换是由虚拟IP地址的飘逸来实现

实验

主机名:

在两台web节点安装http服务,开启并设置开机自启动

复制代码
yum -y install httpd
systemctl start httpd
systemctl enable httpd --now
echo 'this is web' > /var/www/html/index.html

在lb节点的服务器上加载ip_vs

复制代码
# 加载 ip_vs 模块
modprobe ip_vs

# 查看 ip_vs 版本信息
cat /proc/net/ip_vs
#安装keepalived
yum install ipvsadm keepalived -y

修改lb01 中keepalived的配置文件

复制代码
vi /etc/keepalived/keepalived.conf

清空文件内容,替换以下内容修改

复制代码
! Configuration File for keepalived
global_defs {
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER            # 两个 DS,一个为 MASTER 一个为 BACKUP
    interface ens33         # 当前 IP 对应的网络接口,通过 ifconfig 查询
    virtual_router_id 62    # 虚拟路由 ID(0-255),在一个 VRRP 实例中主备服务器 ID 必须一样
    priority 200            # 优先级值设定:MASTER 要比 BACKUP 的值大
    advert_int 1            # 通告时间间隔:单位秒,主备要一致
    authentication {        # 认证机制,主从节点保持一致即可
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.207.200       # VIP,可配置多个
    }
}

# web 配置
virtual_server 192.168.207.200 80  {
    delay_loop 3                    # 设置健康状态检查时间
    lb_algo rr                      # 调度算法,这里用了 rr 轮询算法
    lb_kind DR                      # 这里测试用了 Direct Route 模式
    persistence_timeout 50          # 持久连接超时时间,注意添加此项配置客户端连续请求时,请求到同一节点
    protocol TCP
	real_server 192.168.207.166 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10   
            retry 3            # 旧版本为 nb_get_retry 
            delay_before_retry 3  # 重试间隔3秒 
            connect_port 80
        }
    }
	real_server 192.168.207.167 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

使用远程连接,传输文件到lb02

复制代码
scp /etc/keepalived/keepalived.conf root@192.168.27.129:/etc/keepalived/

修改其内容

复制代码
#在lb节点添加内置参数
# 调整 proc 响应参数
## 对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应
## 数据包的入接口和路由后的指定的出接口是同一个接口,所以需要关闭重定向
echo 'net.ipv4.conf.all.send_redirects = 0' >> /etc/sysctl.conf
echo 'net.ipv4.conf.default.send_redirects = 0' >> /etc/sysctl.conf
echo 'net.ipv4.conf.ens33.send_redirects = 0' >> /etc/sysctl.conf
sysctl -p

#启动keepalived并设置为开机自启动
systemctl start keepalived
systemctl enable keepalived

修改web节点的内置参数

编写一个一个dr.sh的脚本

复制代码
#!/bin/bash 
SNS_VIP=192.168.27.200
case "$1" in
start)
       ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
       /sbin/route add -host $SNS_VIP dev lo:0
       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
       sysctl -p >/dev/null 2>&1
       echo "RealServer Start OK"
       ;;
stop)
       ifconfig lo:0 down
       route del $SNS_VIP >/dev/null 2>&1
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Stoped"
       ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
exit 0

启动脚本,传入参数

复制代码
sh dr.sh start

验证实验是否成功

新开启一台虚拟机,curl VIP地址

#使用循环访问页面每次访问过后休眠一秒,用于VIP漂移验证

for i in $(seq 1 300);do curl 192.168.2.200 ;sleep 1;done

#在VIP节点上关闭此虚拟机

init 0

#查看另一台高可用服务器VIP是否飘过去

ip a

如果重新打开lb01,还是会漂移回去。这是因为

1.权限很高

  1. 优先级高
相关推荐
智慧光迅AINOPOL1 小时前
校园在线巡课系统方案:督导全覆盖
网络·全光网解决方案·全光网·校园全光网·校园全光网解决方案
酉鬼女又兒2 小时前
零基础入门计算机网络:网络层核心任务、三大关键问题、两种服务类型与 TCP/IP 网际层协议体系全解析
服务器·网络·网络协议·tcp/ip·计算机网络·php·求职招聘
Urbano2 小时前
工装制作全流程科普:从面料到自动化生产
网络·人工智能
2401_868534782 小时前
网规笔记 | 真题解析:2018年11月软考网规-网络安全案例分析
网络
Gauss松鼠会2 小时前
【GaussDB】GaussDB重要通信参数汇总
服务器·网络·数据库·sql·性能优化·gaussdb·经验总结
超级无敌zhq3 小时前
后渗透痕迹清理:攻防对抗中的隐身术
网络·数据库·网络安全
“初生”3 小时前
Codex 桌面端新会话 5 次 Reconnecting 怎么办?HTTP/SSE 完美修复方案(2026最新)
网络·网络协议·http
m0_738120723 小时前
Docker 环境下 Vulfocus 靶场搭建全流程(附镜像源问题解决方案)
运维·服务器·网络·安全·docker·容器
爱讲故事的4 小时前
计算机网络第七章:无线与移动网络复习笔记
网络·笔记·计算机网络
王莎莎-MinerU4 小时前
面向大模型工作流的文档解析:从OCR到MinerU的深度技术指南
网络·ocr