通过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 |
3 | Real Server 1 | ens33:192.168.159.37 | Public IP |
网关: 192.168.159.233 | Virtual IP | ||
4 | Real Server 2 | ens33:192.168.159.38 | Public IP |
网关: 192.168.159.233 | Virtual IP |
基于NAT模式的整个高可用LVS集群系统的拓扑结构如下图所示:
1.2、虚拟机多网卡设置
准备四台物理机或虚拟机,使⽤RHEL9/Almalinux9.3及其更高系统。关于使用VMware Workstation搭建的虚拟机增加网卡操作:
选中需要添加网卡的虚拟机-->点击鼠标右键【设置】-->【添加】-->【网络适配器】-->【完成】根据自己的需要选择网络连接类型,一般使用NAT即可,详细操作如下图所示:
VMware Workstation中桥接模式、NAT模式、仅主机模式https://blog.csdn.net/xiaochenXIHUA/article/details/127651799Linux的全新网络管理命令行工具——nmcli
https://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地址、且网络安全需要做好保障: