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

keepalived详细笔记

keepalived 是一种基于VRRP(虚拟路由器冗余协议)的高可用解决方案,主要是用于服务器的负载均衡和高可用性的保障,自动将服务切换到备份服务器上,确保业务的连续性。

工作原理:

VRRP协议:一组路由器(或服务器)组成一个虚拟路由器,其中有一个主路由器(Master)和多个备份路由器(Backup)。虚拟路由器有一个虚拟 IP 地址(VIP),对外提供服务。主路由器定期发送VRRP通告消息,备份路由器监听这些消息。

当备份路由器在一定时间内没有收到主路由器的通告消息时,会认为主路由器发生故障,此时会根据优先级选举出一个新的主路由器,并接管虚拟 IP 地址,继续对外提供服务。

Keepalived 在此基础上,不仅实现了 VRRP 的基本功能,还添加了一些自定义的健康检查机制和服务管理功能。它对后端的真实服务器进行健康检查,如通过 HTTP、TCP 等协议检查服务器的端口是否可达、服务是否正常响应等。

如果检测到某台真实服务器出现故障,Keepalived 可以将其从负载均衡集群中剔除,待服务器恢复正常后再重新加入。

keepalived+nginx高可用实验

1.下载 Nginx 源码包:

cd /usr/local/src

wget http://nginx.org/download/nginx-1.18.0.tar.gz

  • 解压源码包:

    tar -zxvf nginx-1.18.0.tar.gz

    进入解压目录配置并编译安装

    cd nginx-1.18.0

    ./configure --prefix=/usr/local/nginx

    make && make install

    启动Nginx

    /usr/local/nginx/sbin/nginx

    • 验证 Nginx 是否成功启动:在浏览器中输入服务器的内网 IP 地址,若出现 Nginx 的欢迎页面,则启动成功。

  1. 安装 Keepalived

    • 在 Server1 和 Server2 上同时进行以下操作:

yum install -y keepalived
  1. 配置 Keepalived

    • 在 Server1 上,编辑 /etc/keepalived/keepalived.conf 文件,如下:

global_defs {router_id SERVER1  # 服务器唯一标识
}
​
# 定义 VRRP 实例
vrrp_instance VI_1 {state MASTER  # 此服务器为主服务器interface ens160  # 绑定的网络接口virtual_router_id 65  # 虚拟路由器 ID,取值范围 0 - 255,同一组需保持一致priority 100  # 优先级,数值越大优先级越高advert_int 1  # 通告间隔时间,单位为秒authentication {auth_type PASS  # 认证类型为简单密码认证auth_pass 123456  # 认证密码,需与 Server2 保持一致}virtual_ipaddress {192.168.65.200/24 dev ens160  # 虚拟 IP 地址}
}
  • 在 Server2 上,编辑 /etc/keepalived/keepalived.conf 文件,如下:

global_defs {router_id SERVER2  # 服务器唯一标识
}
​
# 定义 VRRP 实例
vrrp_instance VI_1 {state BACKUP  # 此服务器为备用服务器interface ens160  # 绑定的网络接口virtual_router_id 65  # 虚拟路由器 ID,取值范围 0 - 255,同一组需保持一致priority 90  # 优先级,低于 Server1advert_int 1  # 通告间隔时间,单位为秒authentication {auth_type PASS  # 认证类型为简单密码认证auth_pass 123456  # 认证密码,需与 Server1 保持一致}virtual_ipaddress {192.168.65.200/24 dev ens160  # 虚拟 IP 地址}
​
}
  1. 启动 Keepalived

    • 在 Server1 和 Server2 上分别执行:

systemctl start keepalived

MASTER(主)节点(192.168.65.131)成功标志

192.168.65.131拿到了VIP 192.168.131.200。

BACKUP(备)节点(192.168.65.132)成功标志

BACKUP上只有192.168.65.132这个ip,正常。

  1. 测试高可用性

    • 初始状态下,在局域网内的其他电脑(或通过虚拟机的宿主机)上,在浏览器中输入虚拟 IP 地址(192.168.1.200),此时应该能访问到 Server1 上的 Nginx 页面,因为 Server1 为主服务器。

    • 模拟 Server1 故障:

      • 在 Server1 上停止 Keepalived 服务:

systemctl stop keepalived

*初始状态:*

*模拟故障:*

  • 快速在浏览器中再次输入虚拟 IP 地址,此时页面应能快速切换到 Server2 上的 Nginx 页面,这表明 Server2 成功接管服务。

这样,就完成了一个 Keepalived + Nginx 的简单实验,实现了 Web 服务的高可用性。

相关文章:

  • 【react组件】矩形框选小组件,鼠标左键选中 div,键盘 ESC 清空
  • Transformer编码器+SHAP分析,模型可解释创新表达!
  • 开源AI对比--dify、n8n
  • 云原生环境下服务治理体系的构建与落地实践
  • 【计算机视觉】OpenCV实战项目: Fire-Smoke-Dataset:基于OpenCV的早期火灾检测项目深度解析
  • 使用Python和OpenCV实现实时人脸检测与识别
  • 【软件测试】测试用例的概念与常见测试的模型
  • 电商平台如何做好DDoS 攻防战?
  • 【Java基础】——JVM
  • 如何获取NumPy数组中前N个最大值的索引
  • SSL证书格式详解:PEM、CER、DER、JKS、PKCS12等
  • 【C++设计模式之Template Method Pattern】
  • 蓝桥杯青少 图形化编程(Scratch)编程题每日一练——图形特效
  • [Windows] 能同时打开多个图片的图像游览器JWSEE v2.0
  • 【TACD模拟】质子辐照对GaN器件临界电压增加的影响机制
  • DIFY教程第七弹:自然语言生成SQL应用
  • 在 Spring Boot 中实现动态线程池的全面指南
  • OpenCV计算机视觉实战(4)——计算机视觉核心技术全解析
  • 全局异常未能正确捕获到对应的异常
  • Spring,SpringMVC,SpringBoot,SpringCloud的区别
  • 五粮液董事长:茅台1935已脱离千元价位带,五粮液在千元价位已逐步摆脱其他竞品纠缠
  • 可量产9MWh超大容量储能系统亮相慕尼黑,宁德时代:大储技术迈入新时代
  • 马克思主义理论研究教学名师系列访谈|董雅华:让学生感知马克思主义理论存在于社会生活中
  • 中国国家电影局与俄罗斯文化部签署电影合作文件
  • 股价两天涨超30%,中航成飞:不存在应披露而未披露的重大事项
  • 公示!17个新职业、42个新工种亮相