当前位置: 首页 > news >正文

LVS+Keepalived 高可用群集

目录

一、keepalived 双机热备基础知识

1. keepalived 概述及安装

2. keepalived 的热备方式

3. Keepalived 的安装与服务控制

(1)安装 Keepalived

(2)控制Keepalived 服务

二、LVS+keepalived 案例 双机热备

环境

部署

验证


一、keepalived 双机热备基础知识

1. keepalived 概述及安装

核心定位
Keepalived 最初是为 LVS(Linux Virtual Server)设计的高可用辅助工具,提供 故障切换(Failover) 和 健康检查(Health Checking) 功能:

  • 故障切换:当主节点(Master)故障时,自动将流量迁移至备用节点(Backup),业务恢复后切回主节点16。

  • 健康检查:监控 LVS 调度器及后端节点服务器的可用性,自动隔离故障节点并重新纳入恢复节点37。
    适用场景

  • 负载均衡器高可用(如 LVS 主备调度器)。

  • 非 LVS 环境(如 Web、数据库、FTP 服务的双机热备)

2. keepalived 的热备方式

基于 VRRP 协议实现

  • VRRP(虚拟路由冗余协议)

    • 多台服务器组成热备组,共享一个虚拟 IP(VIP)对外提供服务

    • 主备角色

      • MASTER:活跃节点,持有 VIP 并处理流量

      • BACKUP:待命节点,监听 MASTER 状态,故障时接管 VIP

  • VIP 漂移机制

    • VIP 根据优先级(priority)在热备组内动态转移,无需手动配置虚拟接口(如 eth0:0

  • 核心优势

    • 透明切换:客户端无感知故障转移(仅 1-2 个数据包丢失)

    • 跨服务兼容:适用于任何基于 IP 的服务(Web、SSH、DNS 等)

3. Keepalived 的安装与服务控制

(1)安装 Keepalived
yum install -y keepalived ipvsadm    # 安装 Keepalived 及 LVS 管理工具
(2)控制Keepalived 服务
systemctl start keepalived    # 启动服务  
systemctl stop keepalived     # 停止服务
systemctl enable keepalived   # 启用开机自启systemctl status keepalived   # 查看运行状态  
ip addr show dev eth0         # 检查 VIP 是否绑定(MASTER 节点可见

二、LVS+keepalived 案例 双机热备

环境

105:客户端   101,102:keepa+LVS    103,104:网站服务器

 部署
-安装
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
dnf -y install keepalived ipvsadm
-配置文件是模板需拷贝
cd /etc/keepalived
cp keepalived.conf.sample  keepalived.conf
--101
可选参数:nopreempt(不抢占模式)
vim /etc/keepalived/keepalived.confrouter_id LVS_01		#id可以一样,该id仅本地有效#vrrp_strict			#注销掉vrrp_instance  VI_1 {state MASTERvirtual_router_id 51   //热备组号,需要在同一个组interface ens33priority 100   //优先级advert_int 1authentication {    //热备组密码认证auth_type PASS    //特定认证类型auth_pass 1111   //密码的认证机制}}virtual_ipaddress {192.168.10.172	  #Vip}-------为LVS真实服务器设置virtual_server 192.168.10.172 80 {    //与vip保持一致delay_loop 6    //检查状态的间隔时间lb_algo rr    //负载均衡算法lb_kind DR      //负载均衡类型# persistence_timeout 50   //持久化超时时间protocol TCP   //传输控制协议real_server 192.168.10.103 80 {weight 1  //权重TCP_CHECK {     //检查机制,采用 TCP 协议进行健康检查connect_port 80   //尝试连接的端口connect_timeout 3   //连接超时时间retry 3       //重试次数delay_before_retry 3   //重试前的延迟时间}}real_server 192.168.10.104 80 {weight 1TCP_CHECK {connect_port 80 connect_timeout 3   retry 3      delay_before_retry 3  ##:set paste   粘贴取消自动换行
--102
vim /etc/keepalived/keepalived.confrouter_id LVS_02		#vrrp_strict			#注销掉vrrp_instance  VI_1 {state BACKUPnopreempt  	//不抢占,注意只有备可以设置virtual_router_id 51   //热备组号,需要在同一个组interface ens33priority 90  advert_int 1authentication {   auth_type PASSauth_pass 1111}}virtual_ipaddress {192.168.10.172	}virtual_server 192.168.10.172 80 {delay_loop 6lb_algo rrlb_kind DR#persistence_timeout 50  //测试先去掉protocol TCPreal_server 192.168.10.103 80 {weight 1     TCP_CHECK {connect_port 80 connect_timeout 3retry 3delay_before_retry 3}}real_server 192.168.10.104 80 {weight 1TCP_CHECK {connect_port 80 connect_timeout 3retry 3delay_before_retry 3}}
-启动服务
systemctl restart keepalived
-查看VIP
ip add
#真实服务器网站部署
systemctl stop firewalld
systemctl distable firewalld
setenforce 0
dnf -y install httpd
--103echo "test333333">/var/www/html/index.htmlsystemctl start httpdsystemctl enable httpd--104echo "test444444">/var/www/html/index.htmlsystemctl start httpdsystemctl enable httpd#web服务器设置DR模式-VIP设置
ip addr add 192.168.10.172/32 dev lo label lo:0
-重启
nmcli c reload
nmcli c up lo 
-添加路由条目
ip route add local 192.168.10.172/32 dev lo   //本地回环地址路由
或
route add -host 192.168.10.172 dev lo   //针对特定主机的路由设置-改内核(路由没成功)
vim /etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
-重载
sysctl -p
-重启服务
systemctl restart httpd
systemctl enable httpd
验证
#模拟故障
关闭一个web,测试网站访问是否正常
在101,102 用“ipvsadm -ln” 可以查看统计信息,发现少了关闭的web信息
重新打开后会恢复,体现出来keepalived的功能。关闭一个 keepalived 服务器,测试 VIP 漂移效果

相关文章:

  • Python Day37
  • 智能手机上用Termux安装php+Nginx
  • MySQL索引与事物
  • LVS + Keepalived 高可用群集
  • Spring框架学习day2--Bean管理(IOC)
  • 智能穿戴新标杆:SD NAND (贴片式SD卡)与 SOC 如何定义 AI 眼镜未来技术路径
  • 华为OD机试真题——报文回路(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 回调函数的理解
  • 【LangChain】框架解析
  • ASP.NET TreeView控件使用指南
  • 深入了解linux系统—— 库的链接和加载
  • 【Linux】shell脚本的变量与运算
  • OpenAI o3安全危机:AI“抗命”背后的技术暗战与产业变局
  • 代码随想录算法训练营第五十三天
  • 什么是node.js、npm、vue
  • DeepSeek进阶教程:实时数据分析与自动化决策系统
  • IDEA项目推送到远程仓库
  • Intellij IDEA 查找接口实现类的快捷键
  • 全志F1c200开发笔记——移植Debian文件系统
  • 【Rust模式与匹配】Rust模式与匹配深入探索与应用实战
  • 医院网站建设投标书/百度推广退款电话
  • 阿里巴巴的网站应该怎么做/关键词优化和seo
  • 怎么查看什么公司做的网站吗/长春网站建设技术支持
  • 建设部网站危险性较大/超级外链发布工具
  • 深圳网站开发公司 有哪些/重庆seo薪酬水平
  • 十大景观设计公司/站长之家seo综合