keepalived+lvs+tomcat+nfs架构部署(代码片段)

IT.cat IT.cat     2023-03-31     403

关键词:

目录

一、实验环境准备

二、配置负载调度器lvs(主192.168.59.11,备192.168.59.10)

安装ipvsadm工具

配置VIP地址(主192.168.59.100)

调整内核(proc)响应参数

配置负载分配

lvs2(备192.168.59.10)相同配置 (把上面再执行一遍)

三、部署共享存储(NFS:192.168.59.14)

安装nfs和rpcbind

创建共享目录并设置权限

输入页面内容

 设置共享目录并发布共享

备lvs:192.168.59.10相同配置

四、部署节点服务器(tomcat1,tomcat2)

配置虚拟VIP地址(vip:192.168.59.100) 两台节点服务器都需要配置

启动lo:0网卡,添加VIP本地访问路由

设置系统自动识别,并设置执行权限

调整内核的arp响应参数以阻止更新VIP的MAC地址,避免发生冲突

安装tomcat、nfs、rpcbind

web2和web1一样的配置,但是注意修改IP

web1:挂载共享目录

web2:挂载共享目录

到这里我们小小的测试以下

五、部署keepalived

修改配置文件keepalived.conf(这步主备lvs操作一致)

配置主lvs(192.168.59.11)

配置备lvs(192.168.59.10)

六、最终测试

总结


一、实验环境准备

DR服务器(LVS):主-192.168.59.11   备-192.168.59.10
tomcat1:192.168.59.12
tomcat2:192.168.59.13
VIP(虚拟回环):192.168.59.100
NFS:192.168.59.14
客户端:192.168.59.90

因为是在内网环境中我们需要配置本地yum仓库,并且关闭防火墙

#!/bin/bash
########关闭防火墙############
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#######yum仓库#########
mount /dev/cdrom /mnt
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo  /etc/yum.repos.d/bak
touch /etc/yum.repos.d/local.repo
echo "
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
" > /etc/yum.repos.d/local.repo
yum clean all
yum makecache

要在每台主机中都执行一遍

执行效果。

二、配置负载调度器lvs(主192.168.59.11,备192.168.59.10)

安装ipvsadm工具

yum -y install ipvsadm

配置VIP地址(主192.168.59.100)

cd /etc/sysconfig/network-scripts

cp ifcfg-ens33 ifcfg-ens33:0

vim ifcfg-ens33:0

ifup ens33:0  #开启网卡

ifconfig

调整内核(proc)响应参数

对于DR集群模式来说,由于LVS负载调度器和个节点需要共用VIP地址,一个关闭linux内核的重定向参数响应服务器部署一台路由器,那么它不会发送重定向,所以可以关闭该功能

vim /etc/sysctl.conf

net.ipv4.ip_forward = 0  #关闭路由转发功能

net.ipv4.conf.all.send_redirects = 0 #下面都是关闭内核重定向功能

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

配置负载分配

ipvsadm -C

ipvsadm -A -t 192.168.59.100:80 -s rr

ipvsadm -a -t 192.168.59.100:80 -r 192.168.59.12:80 -g   

ipvsadm -a -t 192.168.59.100:80 -r 192.168.59.13:80 -g

ipvsadm

ipvsadm-save > /etc/sysconfig/ipvsadm  

lvs2(备192.168.59.10)相同配置 (把上面再执行一遍)

三、部署共享存储(NFS:192.168.59.14)

安装nfs和rpcbind

yum -y install nfs-utils rpcbind

systemctl start nfs

systemctl start rpcbind

创建共享目录并设置权限

mkdir /opt/db1 /opt/db2

chmod 777 /opt/zb /opt/lc

 

输入页面内容

echo "i am web1" > /opt/db1/index.html
echo "i am web2" > /opt/db2/index.html

 设置共享目录并发布共享

vim /etc/exports

/opt/db1 192.168.59.0/24(rw,sync)
/opt/db2 192.168.59.0/24(rw,sync)

 exportfs -rv

 

备lvs:192.168.59.10相同配置

四、部署节点服务器(tomcat1,tomcat2)

tomcat1:192.168.59.12

tomcat2:192.168.59.13

配置虚拟VIP地址(vip:192.168.59.100) 两台节点服务器都需要配置

此地址仅作为发送web响应数据包的源地址,并不需要监听客户机的访问请求(这里由调度器调度并分发)。因此实验虚接口lo:0来承担VIP地址,并为本机添加一条路由记录,将访问VIP的数据限制在本地,以避免通讯紊乱。

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0

启动lo:0网卡,添加VIP本地访问路由

ifup lo:0

ifconfig lo:0

route add -host 192.168.59.100 dev lo:0

设置系统自动识别,并设置执行权限

vim /etc/rc.local

/sbin/route add -host 192.168.59.100 dev lo:0

chmod +x /etc/rc.d/rc.local

调整内核的arp响应参数以阻止更新VIP的MAC地址,避免发生冲突

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

安装tomcat、nfs、rpcbind

tomcat可以使用wget下载(没有网,可以预先下载然后传进去)

yum -y install java 

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz

tar -xvf apache-tomcat-9.0.65.tar.gz

mv apache-tomcat-9.0.65 /usr/local/tomcat

#进入配置文件,修改端口为8000

vim /usr/local/tomcat/conf/server.xml

ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/startup.sh

startup.sh #开启tomcat

systemctl start nfs rpcbind  #开启服务

访问一下试试就安装完成了

web2和web1一样的配置,但是注意修改IP

web1:挂载共享目录

mount.nfs 192.168.59.14:/opt/db1 /usr/local/tomcat/webapps/ROOT/

df -hT

web2:挂载共享目录

mount.nfs 192.168.59.14:/opt/db2 /usr/local/tomcat/webapps/ROOT/

df -hT

到这里我们小小的测试以下

这样我们lvs+tomcat+nfs就部署完成

五、部署keepalived

这我们选择yum安装就行

yum -y install keepalived

修改配置文件keepalived.conf(这步主备lvs操作一致)

cd /etc/keepalived/

cp keepalived.conf keepalived.conf.bak  #备份以下配置文件

vim keepalived.conf

配置主lvs(192.168.59.11)

这里配置的是双主热备,比单配的会更快地切换,还在当中添加了负载均衡策略,配置了后我们其实也不需要再配本地的负载均衡策略了。

! Configuration File for keepalived

global_defs     #定义全局参数
   notification_email 
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1   #邮件服务指向地址
   smtp_connect_timeout 30
   router_id LVS_1            #指定服务器名,主备服务器不能相同!!!
   vrrp_skip_check_adv_addr
   #vrrp_strict              #一定要注释,取消严格遵守vrrp协议功能,否则VIP无法被连接
   vrrp_garp_interval 0
   vrrp_gna_interval 0


vrrp_instance VI_1        #定义VRRP热备份实力参数
    state MASTER           #指定热备状态,主为MASTER,备为BACKUP
    interface ens33        #指定承载的VIP地址的物理接口
    virtual_router_id 10   #指定虚拟路由器的ID号,每个热备组保持一致
    priority 100           #指定优先级,数值越大优先级越高
    advert_int 1           #通告间隔秒数(心跳频率)
    authentication        #定义认证信息,每个热备组保持一致
        auth_type PASS     #认证类型
        auth_pass 1111     #指定验证密码,主备服务器保持一致
    
    virtual_ipaddress    
        192.168.59.200    #指定集群VIP
    

vrrp_instance VI_2        #第二个热备组,含义与上方一致
    state BACKUP
    interface ens33
    virtual_router_id 11
    priority 50
    advert_int 1
    authentication 
        auth_type PASS
        auth_pass 1111
    
    virtual_ipaddress 
        192.168.59.200
    


virtual_server 192.168.59.100 80   #指定虚拟服务器地址(VIP)、端口、定义虚拟服务器和RIP服务器地址池参数
    delay_loop 6      #健康检查的间隔
    lb_algo rr        #指定调度算法:轮询(rr)
    lb_kind DR        #指定集群工作模式,直接路由(DR)
    persistence_timeout 0   #连接保持时间
    protocol TCP            #应用服务采用的TCP协议

    real_server 192.168.59.12 80   #指定第一个web节点的地址,端口
        weight 1                    #节点权重
        TCP_CHECK                  #添加健康检查方式
        connect_port 80             #添加检查的端口
        connect_timeout 3           #添加连接超时时间
        nb_get_retry 3              #添加重试次数
        delay_beforce_retry 3       #添加重试间隔
        

real_server 192.168.59.13 80     #指定第二个web节点的地址,端口
          weight 1
          TCP_CHECK
          connect_port 80
          connect_timeout 3
          nb_get_retry 3
          delay_beforce_retry 3
          



                                                                                    

systemctl start  keepalived

ip  a

配置备lvs(192.168.59.10)

! Configuration File for keepalived

global_defs 
   notification_email 
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_2
   vrrp_skip_check_adv_addr
 #  vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0


vrrp_instance VI_1 
    state BACKUP
    interface ens33
    virtual_router_id 10
    priority 50
    advert_int 1
    authentication 
        auth_type PASS
        auth_pass 1111
    
    virtual_ipaddress 
        192.168.59.200
    

vrrp_instance VI_2 
    state MASTER
    interface ens33
    virtual_router_id 11
    priority 100
    advert_int 1
    authentication 
        auth_type PASS
        auth_pass 1111
    
    virtual_ipaddress 
        192.168.59.200
    

erver 192.168.59.100 80 
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 0
    protocol TCP

    real_server 192.168.59.12 80 
        weight 1
        TCP_CHECK
        connect_port 80
        connect_timeout 3
        nb_get_retry 3
        delay_beforce_retry 3
        

real_server 192.168.59.13 80 
          weight 1
          TCP_CHECK
          connect_port 80
          connect_timeout 3
          nb_get_retry 3
          delay_beforce_retry 3
          



systemctl start keepalived

ip a

六、最终测试

现在我们是可以正常访问的

我们将主lvs断掉,查看备

 再看客户端

还是可以正常访问,到此配置结束

总结

集群满足的三个特点:负载均衡,健康检查,故障切换

        对于节点服务器:健康检查如果发现有故障的节点就会将其隔离或者提出集群。待其恢复后在重新加入集群当中。
        负载均衡器:健康检查会定时检查主机的状态(包括主机和服务状态)如果主故障就会自动切换到备主机上,待主的恢复重新在让主承载业务请求。

lvs(dr)+keepalived+nfs+raid+lvm

LVS理论篇650)this.width=650;"src="https://s3.51cto.com/wyfs02/M00/8D/A4/wKiom1ikWLezxsAWAAJSHJoFJTA731.png-wh_500x0-wm_3-wmp_4-s_2162435039.png"title="0.png"style="float:none;"alt="wKiom1ikWLezxsAWAAJSHJ 查看详情

lvs+keepalived实战(代码片段)

1.配置规划:2.安装配置主DS和备用DS需要安装lvs和keepalived;RealServer只需添加realserver.sh文件,其余需要配置tomcat或apache,注:对apache或tomcat测试页面进行不通标识,方便测试负载均衡。2.1安装lvsyuminstallipvsadm2.2安装配置keepalived#安... 查看详情

keepalived双机热备+lvs负载实验案例

...主页内容3)开启httpd服务并设置为开机自启二、搭建Keepalived1、搭建Keepalived11)安装Keepalived2)备份主配置文件3)修改主配置文件4)启动keepalived并设置为开机自启2、搭建Keepalived21)安装Keepalived2)备份... 查看详情

keepalived双机热备+lvs负载实验案例

...主页内容3)开启httpd服务并设置为开机自启二、搭建Keepalived1、搭建Keepalived11)安装Keepalived2)备份主配置文件3)修改主配置文件4)启动keepalived并设置为开机自启2、搭建Keepalived21)安装Keepalived2)备份... 查看详情

高可用负载均衡:lvs+keepalived(代码片段)

LVS+Keepalived方案,基于DR模式的。参考文章如下:youzhibing2904,《主从热备+负载均衡(LVS+keepalived)》lvshaorong,《Keepalived实现NAT+LVS+后端健康检测》  结构图如下: 一、配置网络Tomcat-1:  192.168.44.18Tomcat-2:  192.16... 查看详情

centos7下配置lvs+keepalived高可用主备+2台tomcat负载图文篇(代码片段)

环境描述:centos7最小化安装1.环境说明:名称IP说明masterens33:192.168.0.61vip:192.168.0.60backupens33:192.168.0.62vip:192.168.0.60tomcat1ens33:192.168.0.63负载tomcat2ens33:192.168.0.64负载测试机在同网段随意一台均可tomcat安装详细步骤上一篇文章有... 查看详情

lvs+keepalived负载均衡配置

简介lvs一般是和keepalived一起组合使用的,虽然也可以单独使用lvs,但配置比较繁琐,且可用性也没有前者高。lvs和keepalived组合使用后,配置lvs的VIP和负载均衡就都在keepalived中进行配置,只是在keepalived中调用lvs 架构图 &n... 查看详情

keepalived+lvs

第1章keepalived服务说明1.1keepalived是什么?  Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,... 查看详情

keepalived+lvs

一keepalived简介:keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能,因此。keepalived除了能够管理LVS软件之外,还可以作为其他服务的高可用... 查看详情

keepalived+lvs实现负载均衡(代码片段)

一、Keepalived与LVS简单工作原理了解1、Keepalived管理LVS负载均衡软件,Keepalived可以通过读取自身的配置文件,实现通过更底层的接口直接管理LVS的配置以及控制服务的启动、停止等功能,这使用LVS的应用更加简单方便了。2、Keepali... 查看详情

keepalived+lvs

#################################### Keepalived+lvs ###################################server4tarzxfkeepalived-1.3.5.tar.gz cdkeepalived-1.3.5[[email protected]keepalived-1.3.5]#yu 查看详情

lvs+keepalived+httpd高可用集群(代码片段)

实验环境(1)本次基于VMwareWorkstation搭建一个四台Linux(CentOS7.4)系统所构成的一个服务器集群,其中两台负载均衡服务器(一台为主机,另一台为备机),另外两台作为真实的Web服务器(向外部提供http服务,这里仅仅使用了Cen... 查看详情

lvs+keepalived快速搭建测试环境

#LVS+keepalived快速搭建测试环境 #LVS+keepalived快速搭建测试环境#centos6X64#LVS负载均衡模式:DR(直接路由)192.168.18.31master(LVS)192.168.18.32slave(LVS)192.168.18.18VIP192.168.18.11web1192.168.18.12web2##################### 查看详情

lvs+keepalived

-------主服务器&从服务器lvs&keepalived------ 首先安装依赖包yum-yinstallopenssl-devel gcc gcc-c++ ipvsadm yum安装lvs yum-yinstallipvsadm yum安装keepalived yum-yinstallkeepa 查看详情

lvs+keepalived集群

3.2配置masterDirector3.3backupdirector配置 查看详情

keepalived管理lvs负载均衡实战(代码片段)

...节点的健康检查功能。为了解决LVS的这些使用不便问题,Keepalived便诞生。Keepalived服务的三大重要功能管理VLS负载均衡实现对LVS集群node健康检查作为系统网络服务的高可用**闲话不多说,直接上实例**LB端Keepalived配置[[email prot... 查看详情

lvs+keepalived

LVS+keepalived负载均衡实战        ---------------------这里非常感谢田逸老师的文档,在我学习lvs的时候给了我很大的帮助! 一、为什么要使用负载均衡技术?1、系统高可用性2、  系统可扩展... 查看详情

初识keepalived——keepalived与lvs实现高可用

...而LVS本身无法实现高可用和对realserver的健康状态检测,keepalived为了解决上述2点问题而诞生,同时keepalived还可以直接在配置文件里设置LVS规则,而不需要再单独设置。在配置高可用之前需要提前做2个准备:1.需要进行高可用的... 查看详情