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

keepalived高可用实验

文章目录

      • 实验环境
      • 实验目的
      • 实验步骤
        • 1.将lb01的配置同步到lb02
        • 2.在lb01和lb02上安装keepalived
        • 3.编写keepalived的配置文件
        • 4.启动服务
        • 5、验证:主备是否成功
        • 6、如何判断谁提供服务

实验环境

主机名内网虚拟IP角色
lb0110.0.0.510.0.0.200
lb0210.0.0.610.0.0.200

实验目的

提高lb的高可用,使用keepalived实现主备,这里我们对lnmp架构站点进行高可用

搭建lnmp架构的网站请看我之前的文档

实验步骤

1.将lb01的配置同步到lb02
1、安装Nginx[root@lb02~]# scp -r root@10.0.0.5:/etc/yum.repos.d/ /etc/yum.repos.d/root@10.0.0.5's password: CentOS-Base.repo 100% 1890 765.9KB/s 00:00 epel.repo 100% 664 950.3KB/s 00:00 nginx.repo 100% 192 324.1KB/s 00:00 nginx.conf 100% 99 134.7KB/s 00:00 [root@lb02 ~]# yum -y install nginx 创建程序用户 [root@lb02 ~]# groupadd www -g 666 [root@lb02 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M [root@lb02 ~]# scp -r root@10.0.0.5:/etc/nginx/ /etc/ root@10.0.0.5'spassword:proxy.conf100%194406.5KB/s00:00default.conf100%10722.1MB/s00:00java.conf100%254473.1KB/s00:00fastcgi_params100%10071.1MB/s00:00mime.types100%52316.9MB/s00:00nginx.conf100%6481.3MB/s00:00scgi_params100%636764.9KB/s00:00uwsgi_params100%664454.3KB/s00:00proxy_params100%275673.1KB/s00:00修改配置文件[root@lb02~]# sed -i '/^user/c user www;' /etc/nginx/nginx.conf[root@lb02~]# systemctl start nginx[root@lb02~]# systemctl enable nginxCreated symlink from/etc/systemd/system/multi-user.target.wants/nginx.service to/usr/lib/systemd/system/nginx.service.
2.在lb01和lb02上安装keepalived
[root@lb01~]# yum install -y keepalived[root@lb02~]# yum install -y keepalived
3.编写keepalived的配置文件
#lb01的配置:[root@lb01~]# cat /etc/keepalived/keepalived.conf!Configuration Fileforkeepalived global_defs{router_id lb01# 添加,唯一标识即可}vrrp_instanceVI_1{stateMASTER# 保留,Master节点标识interfaceens33# 注意:需确认你的服务器实际网卡名称(如ens33、eth0),必须和系统一致!virtual_router_id50# 保留,同一VRRP组内(Master/Backup)必须相同(0-255)priority100# 保留,Master优先级高于Backup即可advert_int1# 保留,心跳发送间隔(1秒,同一组必须相同)authentication{auth_typePASS# 保留,认证方式auth_pass1111# 保留,同一组必须相同(密码长度1-8位)}virtual_ipaddress{# 【关键修改】去掉`dev eth1`:该写法在部分Keepalived版本中会导致VIP绑定失败# 原写法:172.16.1.3/24 dev eth110.0.0.200/24# Keepalived会自动绑定到interface指定的网卡# 这里的IP可以自己定义,需要和主机IP在同一个网段里面}}#lb02的配置:[root@lb02~]# cat /etc/keepalived/keepalived.conf!Configuration Fileforkeepalived global_defs{router_id lb02# 【必改1】router_id唯一,添加为lb02}vrrp_instanceVI_1{stateBACKUP# 【必改2】state改为BACKUPinterfaceens33# 【必须和Master一致】网卡名称相同virtual_router_id50# 【必须和Master一致】priority99# 【必改3】priority改为低于Master(如100)advert_int1# 【必须和Master一致】authentication{auth_typePASS# 【必须和Master一致】auth_pass1111# 【必须和Master一致】}virtual_ipaddress{10.0.0.200/24# 【必须和Master一致】VIP相同}}
4.启动服务
[root@lb01~]# systemctl start keepalived[root@lb01~]# systemctl enable keepalivedCreated symlink from/etc/systemd/system/multi-user.target.wants/keepalived.service to/usr/lib/systemd/system/keepalived.service.[root@lb02~]# systemctl start keepalived[root@lb02~]# systemctl enable keepalivedCreated symlink from/etc/systemd/system/multi-user.target.wants/keepalived.service to/usr/lib/systemd/system/keepalived.service.
5、验证:主备是否成功

1、检查lb01

# lb01存在vip地址[root@lb01 conf.d]# ip addr |grep 10.0.0.200inet10.0.0.200/24 scope global secondary ens33# 停止lb01上的keepalived, 检测vip已不存在[root@lb01 conf.d]# systemctl stop keepalived[root@lb01 conf.d]# ip addr |grep 10.0.0.200[root@lb01 conf.d]#

2、检查lb02

在 lb02 上进行如下操作 因为lb01已经暂停,检查lb02是否有接管[root@lb02 conf.d]# ip addr |grep 10.0.0.200inet10.0.0.200/24 scope global secondary ens33 现在把lb01的服务启动,观察lb02是否有虚拟IP[root@lb01 conf.d]# systemctl start keepalived[root@lb02 conf.d]# ip addr |grep 10.0.0.200[root@lb02 conf.d]#
6、如何判断谁提供服务
# 看哪一台有虚拟IP地址[root@lb01~]# ip address show ens363:ens36:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdisc pfifo_fast stateUPgroupdefaultqlen1000link/ether00:0c:29:c4:62:f0 brdff:ff:ff:ff:ff:ff inet172.16.1.5/24brd172.16.1.255scopeglobalnoprefixroute ens36 valid_lft forever preferred_lft forever inet172.16.1.3/32scopeglobalens36
http://www.cnnetsun.cn/news/145348.html

相关文章:

  • 小林coding快速原型:1小时打造MVP产品
  • 零基础教程:VSCode运行Python第一行代码
  • 小白也能懂:图解HTTP连接为什么会被提前关闭
  • AI智能棋盘使用CAT24C512保存EEPROM参数
  • 深度解析revive高级特性:注释指令与错误代码配置完全指南
  • 3分钟原型:用AI验证你的equals/hashCode设计
  • MCU在智能家居中的5个创新应用案例
  • 一文梳理上下文工程(下):如果Agent没做好,大概率是信息没给对
  • AI音乐创作新范式:零代码解锁ChatRWKV音乐引擎
  • 1小时搭建Java MQTT物联网原型系统
  • CVPR2025前瞻:AI如何革新计算机视觉开发流程
  • KDF:加密世界的“密钥魔术师“,99%的开发者都用错了!
  • HikoGUI:重新定义现代C++ GUI开发体验的终极解决方案
  • 分体键盘终极指南:从问题诊断到完美适配的完整解决方案
  • 现代桌面应用架构设计终极指南:模块化开发模式完整解析
  • AI如何自动生成JSON可视化工具?快马平台实战
  • HyperDown:解决Markdown解析混乱的PHP利器,让内容创作更高效!
  • FaceFusion无缝融合算法详解:从特征点提取到纹理合成
  • CUT3R:终极实时三维感知模型完整指南
  • 极速上手 Oxigraph:高性能 SPARQL 图数据库完全指南
  • 27、Windows PowerShell 错误处理与调试指南
  • 从“做13休1”到“做6休1”:外贸企业如何跨越ESG合规的生死线?
  • 基于深度学习的二维码检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 给小白看的LLM科普:从“鹦鹉学舌”到“举一反三”,AI的大脑到底发生了什么?
  • AI如何帮你快速实现Java MQTT物联网开发?
  • 最适合新手的vite-plugin-html入门指南,手把手教你配置项目HTML模板。
  • 用AI生成二次元角色:快马平台实战指南
  • 1小时打造无光标Markdown编辑器原型
  • 5分钟快速上手:用gumbo-parser构建专业级HTML5解析工具
  • FaceFusion实战教程:如何利用大模型Token实现高效推理