LVS(DR模式)+Keepalived(高可用)

实验环境:四个虚拟机

主机服务
server1:172.25.63.1Keepalived:主调用器
server2:172.25.63.2apache:后端服务器
server3:172.25.63.3apache:后端服务器
server4:172.25.63.4Keepalived:备调用器

安装vm4的详细过程请看环境搭建那篇博客
1.配置更高级的yum源(server4),列出yum仓库

[root@server4 ~]# cd /etc/yum.repos.d
[root@server4 yum.repos.d]# vim rhel-source.repo 
[root@server4 yum.repos.d]# yum clean all
[root@server4 yum.repos.d]# yum repolist

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.解压安装包

[root@server1 ~]# tar zxf keepalived-2.0.6.tar.gz 
[root@server1 ~]# ls
bansys.zip        keepalived-2.0.6.tar.gz          varnish-3.0.5-1.el6.x86_64.rpm
keepalived-2.0.6  ldirectord-3.9.5-3.1.x86_64.rpm  varnish-libs-3.0.5-1.el6.x86_64.rpm

在这里插入图片描述
3.切换到keepalived-2.0.6目录下,安装 keepalived的依赖包

[root@server1 ~]# cd keepalived-2.0.6
[root@server1 keepalived-2.0.6]# yum install openssl-devel -y

在这里插入图片描述
4.编译keepalived的源码包

[root@server1 keepalived-2.0.6]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
[root@server1 keepalived-2.0.6]# make && make install

在这里插入图片描述
在这里插入图片描述
5.将编译好的keepalived发送给备用机(server4)

[root@server1 ~]# cd /usr/local
[root@server1 local]# ls
bin  etc  games  include  keepalived  lib  lib64  libexec  sbin  share  src
[root@server1 local]# scp -r keepalived/ server4:/usr/local

在这里插入图片描述
6.给脚本添加可执行权限

[root@server1 keepalived-2.0.6]# cd /usr/local/keepalived/将
[root@server1 keepalived]# ls
bin  etc  sbin  share
[root@server1 keepalived]# cd etc/
[root@server1 etc]# ls
keepalived  rc.d  sysconfig
[root@server1 etc]# cd rc.d/
[root@server1 rc.d]# ls
init.d
[root@server1 rc.d]# cd init.d/
[root@server1 init.d]# chmod +x keepalived
[root@server1 init.d]# ls
keepalived

在这里插入图片描述
7.制作软连接,方便keepalived的管理(server1和server4都要制作软连接)

[root@server1 init.d]# pwd
/usr/local/keepalived/etc/rc.d/init.d
[root@server1 init.d]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server1 etc]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[root@server1 etc]# ln -s /usr/local/keepalived/sbin/keepalived  /sbin/
[root@server1 etc]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

在这里插入图片描述
在这里插入图片描述

[root@server4 ~]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server4 ~]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@server4 ~]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[root@server4 ~]# ln -s /usr/local/keepalived/sbin/keepalived  /sbin/

在这里插入图片描述
8.关闭ldirectord 服务,并设定开机不启动

[root@server1 etc]# /etc/init.d/ldirectord stop
Stopping ldirectord... success
[root@server1 etc]# chkconfig ldirectord off

在这里插入图片描述
9.删除ip,因为当开启Keepalived服务时,会自动获得ip

[root@server1 etc]# ip addr del 172.25.63.100/24 dev eth0
[root@server1 etc]# ip a

在这里插入图片描述
10.编辑keepalived配置文件
在这里插入图片描述

[root@server1 sbin]# cd /etc/keepalived/
[root@server1 keepalived]# ls
keepalived.conf  samples
[root@server1 keepalived]# vim keepalived.conf 
! Configuration File for keepalived
##全局配置
global_defs {                       ##全局定义块
   notification_email {          ##邮件通知
        root@localhost
   }
   notification_email_from Alexandre.Cassen@firewall.loc        ##邮件发送地址
   smtp_server 127:.0.0.1            ##设置smtp server地址
   smtp_connect_timeout 30        ##设置smtp服务器超时时间
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

##VRRPD配置
vrrp_instance VI_1 {
    state MASTER       
    interface eth0
    virtual_router_id 63
    priority 100         ##主机的优先级,主机的优先级一定要大于备机
    advert_int 1
    authentication {
      auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {                ##指定漂移地址
        172.25.63.100
    }
}

##虚拟服务配置
virtual_server 172.25.63.100 80 {               ##定义虚拟服务器
    delay_loop 3
    lb_algo rr                  ##使用轮询算法
    lb_kind DR               ##LVS是DR模式
    #persistence_timeout 50           ##注释掉
    protocol TCP					##指定转发协议类型

    real_server 172.25.63.2 80 {				##配置服务节点
        TCP_CHECK {              #TCP的健康检查
        weight 1
            connect_timeout 3       
            retry 3  					##重试次数
            delay_before_retry 3          ##重试间隔
        }
 }

    real_server 172.25.63.3 80 {
        TCP_CHECK {
        weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

11.将配置好的keepalived文件发送给server4

[root@server1 keepalived]# scp keepalived.conf  server4:/etc/keepalived/

在这里插入图片描述

12.修改server4的keepalived文件,只有两个地方需要修改
在这里插入图片描述

[root@server4 keepalived]# cd /etc/keepalived/
[root@server4 keepalived]# ls
keepalived.conf  samples
[root@server4 keepalived]# vim keepalived.conf 
! Configuration File for keepalived
##全局配置
global_defs {                       ##全局定义块
   notification_email {          ##邮件通知
        root@localhost
   }
   notification_email_from Alexandre.Cassen@firewall.loc        ##邮件发送地址
   smtp_server 127:.0.0.1            ##设置smtp server地址
   smtp_connect_timeout 30        ##设置smtp服务器超时时间
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

##VRRPD配置
vrrp_instance VI_1 {
    state BACKUP          
    interface eth0
    virtual_router_id 63
    priority 50         ##备机的优先级,主机的优先级一定要大于备机 ,所以设为50(修改的地方)
    advert_int 1
    authentication {
      auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {                ##指定漂移地址
        172.25.63.100
    }
}

##虚拟服务配置
virtual_server 172.25.63.100 80 {               ##定义虚拟服务器
    delay_loop 3
    lb_algo rr                  ##使用轮询算法
    lb_kind DR               ##LVS是DR模式
    #persistence_timeout 50           ##注释掉
    protocol TCP					##指定转发协议类型

    real_server 172.25.63.2 80 {				##配置服务节点
        TCP_CHECK {              #TCP的健康检查
        weight 1
            connect_timeout 3       
            retry 3  					##重试次数
            delay_before_retry 3          ##重试间隔
        }
 }

    real_server 172.25.63.3 80 {
        TCP_CHECK {
        weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

13.给server4添加可执行权限

[root@server4 ~]# ll /etc/init.d/keepalived
lrwxrwxrwx 1 root root 48 Apr 19 05:11 /etc/init.d/keepalived -> /usr/local/keepalived/etc/rc.d/init.d/keepalived
[root@server4 ~]# ll /usr/local/keepalived/etc/rc.d/init.d/keepalived
[root@server4 ~]# chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived
[root@server4 ~]# ll /usr/local/keepalived/etc/rc.d/init.d/keepalived



在这里插入图片描述
14.开启server1和server4keepalived服务

[root@server1 ~]# /etc/init.d/keepalived start
[root@server4 ~]# /etc/init.d/keepalived start

在这里插入图片描述
在这里插入图片描述

15.测试:
(1)开启服务后,server1会自动分配ip地址(172.25.63.100)

在这里插入图片描述
(2)将server1的keepalived服务关闭,地址漂移到server4

[root@server1 ~]# /etc/init.d/keepalived  stop

[root@server4 ~]# ip a

在这里插入图片描述
server4中出现ip地址
在这里插入图片描述

  • 高可用下实现健康检查
    1.后端服务器都正常时,实行轮询
[root@foundation63 ~]# arp -d 172.25.63.100
[root@foundation63 ~]# curl 172.25.63.100
<h1>server3 - www.westos.org</h1>

[root@foundation63 ~]# curl 172.25.63.100
<h1>server2.example.com</h1>

[root@foundation63 ~]# curl 172.25.63.100
<h1>server3 - www.westos.org</h1>

在这里插入图片描述
2.将server2的httpd关掉,有一台服务器宕机

[root@server2 ~]# /etc/init.d/httpd stop

在这里插入图片描述
只调度server3服务器

[root@foundation63 ~]# arp -d 172.25.63.100
[root@foundation63 ~]# curl 172.25.63.100
<h1>server3 - www.westos.org</h1>

[root@foundation63 ~]# curl 172.25.63.100
<h1>server3 - www.westos.org</h1>

[root@foundation63 ~]# curl 172.25.63.100
<h1>server3 - www.westos.org</h1>

在这里插入图片描述
3.将两台服务器的httpd关掉

[root@server3 ~]# /etc/init.d/httpd stop

在这里插入图片描述

[root@foundation63 ~]# arp -d 172.25.63.100
[root@foundation63 ~]# curl 172.25.63.100
curl: (7) Failed connect to 172.25.63.100:80; Connection refused
[root@foundation63 ~]# curl 172.25.63.100
curl: (7) Failed connect to 172.25.63.100:80; Connection refused
[root@foundation63 ~]# curl 172.25.63.100
curl: (7) Failed connect to 172.25.63.100:80; Connection refused
[root@foundation63 ~]# curl 172.25.63.100
curl: (7) Failed connect to 172.25.63.100:80; Connection refused

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值