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

通过Keepalived+LVS搭建NAT模式的高可用集群系统保姆级教程

通过Keepalived+LVS搭建DR模式的高可用集群系统保姆级教程https://coffeemilk.blog.csdn.net/article/details/151802511

一、应用环境准备

 1.1、keepalived+LVS搭建NAT模式的地址规划与拓扑结构

     关于搭建WWW服务的高可用LVS集群系统,以及基于NAT模式的LVS集群配置,地址规划如下表所示:

应用环境准备
序号节点类型IP地址规划类型
1

主Director Server

(即LVS)

ens33:   192.168.1.9

Public IP

VIP(外): 192.168.1.222

Virtual IP
VIP(内): 192.168.159.233
2

备Director Server

ens33:192.168.1.36

Public IP
3Real Server 1

ens33:192.168.159.37

Public IP
网关:   192.168.159.233Virtual IP
4Real Server 2

ens33:192.168.159.38

Public IP
网关:   192.168.159.233Virtual IP

基于NAT模式的整个高可用LVS集群系统的拓扑结构如下图所示:

 1.2、虚拟机多网卡设置

        准备四台物理机或虚拟机,使⽤RHEL9/Almalinux9.3及其更高系统。关于使用VMware Workstation搭建的虚拟机增加网卡操作:

选中需要添加网卡的虚拟机-->点击鼠标右键【设置】-->【添加】-->【网络适配器】-->【完成】根据自己的需要选择网络连接类型,一般使用NAT即可,详细操作如下图所示:

VMware Workstation中桥接模式、NAT模式、仅主机模式https://blog.csdn.net/xiaochenXIHUA/article/details/127651799Linux的全新网络管理命令行工具——nmclihttps://coffeemilk.blog.csdn.net/article/details/148851886

#激活新添加的网卡并设置流程#1-查看所有网卡列表
nmcli d#2-激活指定网卡(如:ens37)
nmcli d connect ens37#3-刷新指定网卡
nmcli d reapply ens33#4-查看当前所有网卡信息
ip addr#5-手动设置网卡IP地址固定下来(如:将ens37网卡的IP设置为192.168.159.37、网关设置为:192.168.159.233)
nmcli c edit ens37
goto ipv4
goto addresses
print
change
192.168.159.37
print
backgoto gateway
print
change
192.168.159.233
print
back
backsave
activate
quitnmcli c up ens37
ip addr#6-也可以直接使用一条命令设置就可以(如:将ens37网卡的IP设置为192.168.159.38、网关设置为:192.168.159.233、DNS设置为:223.5.5.5))
nmcli c modify ens37 ipv4.method manual ipv4.addresses 192.168.159.38/24 ipv4.gateway 192.168.159.233 ipv4.dns 223.5.5.5
nmcli c up ens37systemctl restart NetworkManager

1.3、在所有Real Server服务器上安装部署Apache的Web服务

        现在两台Real Server服务器(192.168.159.37、192.168.159.38)上安装部署最基础的Apache的Web服务,详细操作流程如下:

#在所有Real Server服务器上安装部署Apache的Web流程#1-快捷安装Apache Web服务
yum install httpd -y#2-启动Apache Web服务
systemctl start httpd
systemctl status httpd#3-进入httpd的默认网站目录(/var/www/html/)创建一个名为index.html的文件
#(且直接将该文件的内容设置为该服务器的IP地址)
#【Apache的默认配置路径是(/etc/httpd);默认配置文件是(/etc/httpd/conf/httpd.conf)】
cd /var/www/html/
ip addr
echo "192.168.159.37" >> index.html
echo "192.168.159.38" >> index.html#4-永久放开服务器的80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port#5-在浏览器中分别输入Real Server服务器的IP地址查看是否可以显示自己服务器的IP地址内容(建议使用浏览器的无痕标签,防止有缓存影响)
192.168.159.37
192.168.159.38

二、通过Keepalived+LVS搭建NAT模式的高可用集群

 2.1、在Director Server服务器上安装Keepalived

        我们先在【192.168.1.9】服务器上配置,让后再将配置好的内容复制一份传输到另外一台服务器【192.168.1.36】上修改即可,详细的操作流程如下:

Keepalived的详细实操安装流程及其配置文件选项的详解https://coffeemilk.blog.csdn.net/article/details/151679187

 2.2、在Director Server服务器上配置Keepalived内容

#一、先在Direcotr Server主服务器(192.168.1.9)上配置Keepalived内容
#1-进入keepalived的默认配置路径
cd /etc/keepalived/
vi keepalived.conf#2-主节点keepalived的配置文件【/etc/keepalived/keepalived.conf】内容
global_defs {notification_email {dba.ck@gmail.com ck@163.com}notification_email_from keepalived@localhostsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVEL
}vrrp_instance HA_1 {state MASTERinterface ens33virtual_router_id 151priority 100advert_int 1authentication {auth_type PASSauth_pass qwer1234}virtual_ipaddress {192.168.1.222 dev ens33}
}vrrp_instance HA_2 {state MASTERinterface ens37virtual_router_id 152priority 100advert_int 1authentication {auth_type PASSauth_pass qwer1234}virtual_ipaddress {192.168.159.233 dev ens37}
}virtual_server 192.168.1.222 8090 {delay_loop 3lb_algo rrlb_kind NAT#persistence_timeout 50protocol TCPreal_server 192.168.159.37 80 {weight 2TCP_CHECK {connect_timeout 3retry 3delay_before_retry 3}}real_server 192.168.159.38 80 {weight 1TCP_CHECK {connect_timeout 3retry 3delay_before_retry 3} }
}#3-将主服务器上配置好的keepalived.conf配置文件复制传输一份给备用服务器
scp keepalived.conf root@192.168.1.36:/etc/keepalived/#4-在Direcotr Server主服务器(192.168.1.9)上开启数据转发功能并生效
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p#二、后在Direcotr Server备用服务器(192.168.1.36)上配置Keepalived内容
#1-进入备用服务器的keepalived的默认配置文件路径编辑配置文件(即:修改keepalived.conf配置文件中的【state MASTER】更改为【state BACKUP】;【priority 100】更改为一个较小的值,这里改为【priority 80】)后保存;
cd /etc/keepalived/
vi keepalived.conf#2-在Direcotr Server2备用服务器(192.168.1.36)上开启数据转发功能并生效
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p

《1》先在Direcotr Server主服务器(192.168.1.9)上配置Keepalived内容如下图所示:

《2》后在Direcotr Server备用服务器(192.168.1.36)上配置Keepalived内容如下图所示:

 2.3、在Real Server服务器上配置内网网关为VIP

#配置所有Real Server的WWW服务器的网关为指定的内网VIP(如:192.168.159.233)并生效并查看
nmcli c modify ens37 ipv4.gateway 192.168.159.233
nmcli c up ens37
route -n

 2.4、启动Director Server服务器上的keepalived服务并验证

#验证测试
#1-先分别打开Director Server的新终端,并且监测日志方便观察
tail -f /var/log/message#2-先启动Dirictor Server的主节点服务器(192.168.1.9)的keepalived服务,并且查看是否绑定了vip【192.168.1.226】
systemctl status keepalived.service
systemctl start keepalived.service
ip addr#3-查看Director Server主服务器的负载均衡状态(若提示没有ipvsadm命令则需要执行【yum install ipvsadm -y】命令安装即可)
ipvsadm -L -n#4-建议在浏览器的无痕标签页中输入VIP外网地址(192.168.1.222)查看是否可以正常显示我们的Apache的Web服务(192.168.159.37、192.168.159.38字符串显示,显示则表示成功)
192.168.1.222:8090#5-使用一台新的Linux服务器(192.168.1.11)实现200个并发对【http://192.168.1.222】发送1000次请求压测示例
siege -c 200 -r 1000 http://192.168.1.222:8090

三、LVS使用需要注意的问题及其常用的集群架构

 3.1、 LVS使用需要注意的问题

《1》网络方面,推荐关闭selinux。
《2》推荐lvs+keepalived组合。
《3》dr模式需要Real Server绑定vip地址。

 3.2、LVS经常使用的集群网络架构

  3.2.1、内网集群,外网映射VIP【DR模式】

      将这个【DR模式的keepalived+LVS的高可用集群】全部使用同一个内网网段;然后将DR模式中的VIP通过防火墙做一个映射到外网IP地址即可:

  3.2.2、全外网LVS集群【DR模式】

        将这个【DR模式的keepalived+LVS的高可用集群】所有的服务器都使用外网IP;缺点是比较浪费外网IP地址、且网络安全需要做好保障:

http://www.dtcms.com/a/391393.html

相关文章:

  • 设备硬件能力调用:传感器、蓝牙与定位
  • 完全二叉树的链式创建以及遍历
  • 数据结构——二叉树和BST(2)
  • 一文解码百度地图ETA
  • 好题推荐-剑指S10
  • Python 中的魔术方法(Magic Methods)
  • JavaScript事件循环机制----event loop
  • C++编程学习(第33天)
  • 伺服上位机展示
  • Class62 优化算法
  • 电气专业科研怎么入门?电气仿真入门秘籍
  • 软考-系统架构设计师 基于构件的软件工程详细讲解
  • MCP 项目标准管理工具 v1.1.0 发布:新增 API 调试功能,助力 AI 辅助开发标准化
  • Linear Algebra in Competitive Programming
  • Decision Trees vs Neural Networks|决策树 vs 神经网络
  • FreeRTOS——任务管理
  • MSXML4.0是什么?下载安装+常见错误修复一网打尽
  • Claude Code生态
  • Node v22.19 Nest.js 安装 better-sqlite3
  • Android compose Room Sqlite 应用 (注入式)
  • 缓存穿透+缓存雪崩+缓存击穿(解决方法+实战)
  • Docker技术相对于虚拟机技术的优劣势对比!
  • MyBatis框架与参数详解
  • Confluent-Kafka-go 发布超过 1M 消息失败问题解决
  • 数字图像处理-函数矩阵
  • 基于 ST-Link 和 MDK-Keil 的 STM32 程序下载实验
  • 安防监控系统的架构与组成原理
  • 【前端】【threeJs】前端事件偏移问题完整总结
  • web:ts的类型兼容性
  • 黑盒测试:测试用例设计之场景法(流程图法)(模拟用户实际使用软件的场景来设计测试用例,适用于业务流程复杂的系统测试)基本流、备选流