linux CentOS7 keepalived+LVS(DR)搭建部署

目录

一、作用

二、环境简介

三、操作步骤


一、作用



使用keepalived解决lvs的单点故障

高可用集群

二、环境简介



1.准备6台虚拟机,2台做LVS主备调度器,2台做web服务器,1台做存储,1台客户机验证

2.LVS主备调度器 master(192.168.1.106)backup(192.168.1.110)

3.web1(192.168.1.120)web2(192.168.1.128)

4.存储(192.168.1.121)

5.客户机(192.168.1.140)

6.虚拟ip(192.168.1.156)

三、操作步骤



部署web服务器
调整web1与web2的ARP参数

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 

 

web1与web2安装 http

 yum -y install httpd

 

 web1与web2分别写一个index.html用于测试(/var/www/html/ )httpd的网站根目录

 echo "web1" >/var/www/html/index.html

 echo "web2" >/var/www/html/index.html

 

web1与web2创建虚拟ip
 

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:0

DEVICE=lo:0
IPADDR=192.168.1.156
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback:0

 

重启网卡(可以看到下图已经创建成功)

systemctl restart network

ip a查看 

 


web1与web2添加回环路由

route add -host 192.168.1.156/32 dev lo:0

route -n 查看

 

启用httpd

systemctl start httpd

部署LVS主备调度器
调整master和backup的ARP参数(一致)

vim /etc/sysctl.conf 

net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects = 0

 

 

sysctl -p


master和backup安装 keepalived ipvsadm(一致)

yum install -y keepalived ipvsadm

 

配置keepalived master(红色字体master和backup不一致的地方)

vim /etc/keepalived/keepalived.conf

【进去之后除了第一行全部删掉】

global_defs {
   router_id LVS_DEVEL1
}

vrrp_instance master {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    192.168.1.156        
    }
}

virtual_server 192.168.1.156 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    #persistence_timeout 50
    protocol TCP

    real_server 192.168.1.120 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.1.128 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

配置keepalived backup

global_defs {
   router_id LVS_DEVEL2
}

vrrp_instance backup {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    192.168.1.156
    }
}

virtual_server 192.168.1.156 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    #persistence_timeout 50
    protocol TCP

    real_server 192.168.1.120 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.1.128 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

 touch /etc/sysconfig/ipvsadm

【这条命令的意思是在/etc/sysconfig目录下创建一个名为ipvsadm的文件。该文件是用于配置IPVS(IP Virtual Server)的工具,IPVS是一个Linux内核模块,用于实现负载均衡和高可用性。在该文件中,可以设置】

启动master和backup的keepalived与ipvsadm
 

systemctl start keepalived

systemctl start ipvsadm

systemctl restart keepalived

systemctl restart ipvsadm

master和backup加载ip_vs模块

modprobe ip_vs

查看lvs节点状态【先开启再重启才能响应】

 ipvsadm -ln

 


输入curl 192.168.1.156 进行测试(下图可以看到测试成功,自动切换web1与web2)

 

到本机浏览器输入虚拟ip查看

 关掉主服务器再次查看【关掉主服务器之后 从服务器会自动接替主服务器的工作】

 

部署NFS共享服务器
存储配置文件
(rw:指定共享目录具备可读写权限)

(no_all_squash: 所有用户操作文件是什么用户就保留什么用户权限,不转换用户身份)

安装nfs

yum -y install nfs-utils

vim /etc/exports

/data/www/html/ 192.168.1.0/24(rw,no_all_squash)

mkdir  -p /data/www/html

echo "web aaabbb123321" >/data/www/html/index.html

 systemctl start nfs

 showmount -e

web1和web2挂载共享存储

mount 192.168.1.121:/data/www/html /var/www/html/

测试(下图可以看到可以正常访问共享存储里面的内容了)

 nfs服务器输入curl 192.168.1.156 查看

猜你喜欢

转载自blog.csdn.net/2302_77750172/article/details/131299318
今日推荐