菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
253
0

LVS +keepalived

原创
05/13 14:22
阅读数 19519

环境准备:

  准备4台机器,两台装好LVS和Keepalived,作为调度器,另外两台装好httpd服务,作为Real Server。

网络配置:

Diretcory:

名称 接口 IP 用途
MASTER eth0 192.168.1.19 用于WAN的数据转发
 

eth1

10.0.0.19 用于LAN的数据转发
 

eth2

10.0.2.19 用于LB之间的心跳连接
VIP

 

192.168.1.29 解析到www.zydev.com
BACKUP

eth0

192.168.1.16 用于WAN的数据转发
 

eth1

10.0.0.16 用于LAN的数据转发
 

eth2

10.0.2.16 用于LB之间的心跳连接
VIP   暂无  
LAN不需要配置网关

 

 

 

 

 

 

 

 

 

 

 

 

 

 

具体的网卡参数配置以MASTER的3块网卡为例

DEVICE=eth0
HWADDR=00:0c:29:e7:ba:c6
TYPE=Ethernet
UUID=af441a22-3ba9-42fe-9748-eeb78eccb374
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
USERCTL=no
IPV6INIT=no
IPADDR=192.168.1.19
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
eth0
DEVICE=eth1
HWADDR=00:0c:29:e7:ba:bc
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.0.19
NETMASK=255.255.255.0
eth1
DEVICE=eth2
HWADDR=00:0c:29:e7:ba:d0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.2.19
NETMASK=255.255.255.0
eth2

 

RSV

Real Server
名称 接口 IP 用途
RS1 eth0 192.168.1.17 用于WAN数据转发
  eth1 10.0.0.17 用于LAN数据转发
RS2 eh0 192.168.1.18 用于WAN数据转发
  eth1 10.0.0.18 用于LAN数据转发
VIP   暂无  

 

 

 

 

 

 

 

 

具体的网卡参数配置:

DEVICE=eth0
HWADDR=00:0c:29:a4:65:08
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
DNS2=8.8.8.8
DNS1=114.114.114.114
IPV6INIT=no
USERCTL=no
IPADDR=192.168.1.17
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
eth0
DEVICE=eth1
HWADDR=00:0c:29:a4:65:12
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.0.17
NETMASK=255.255.255.0
~                       
eth1

 

配置调度器

Master

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
    zy5724@163.com
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_01
}
                                                     
vrrp_instance VI_1 {
    state MASTER                       #备份服务器上MASTER为BACKUP
    interface eth0        
    lvs_sync_daemon_inteface eth2    #心跳线的网卡
    virtual_router_id 51
    priority 100                        #备份服务上优先级要低于100,如改为90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      192.168.1.29/24                   #注意,这是是模拟外网IP。
    }
}
#
virtual_server 192.168.1.29 80 {
    delay_loop 6              
    lb_algo wrr                
    lb_kind DR                
    nat_mask 255.255.255.0
    persistence_timeout 50        #会话保持  
    protocol TCP                

    real_server 192.168.1.17 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }

    real_server 192.168.1.18 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}
主调度器配置文件

BACKUP

! Configuration File for keepalived

global_defs {
   notification_email {
    zy5724@163.com
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_02
}
                                                     
vrrp_instance VI_1 {
    state BACKUP               #备份服务器上MASTER为BACKUP
    interface eth0
    lvs_sync_daemon_inteface eth2
    virtual_router_id 51
    priority 90                #备份服务上优先级要低于100,如改为90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      192.168.1.29/24             #注意,这是是模拟外网IP。
    }
}
#
virtual_server 192.168.1.29 80 {
    delay_loop 6              
    lb_algo wrr                
    lb_kind DR                
    nat_mask 255.255.255.0
    persistence_timeout 50     
    protocol TCP                

    real_server 192.168.1.17 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }

    real_server 192.168.1.18 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}
备用调度器的配置文件

 

启动keepalived,查看LVS情况

 

 

配置RealServer

RS1

ifconfig lo:17 192.168.1.29 netmask 255.255.255.255 up
route add -host 192.168.1.29 dev lo
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore 
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

RS2

ifconfig lo:18 192.168.1.29 netmask 255.255.255.255 up
route add -host 192.168.1.29 dev lo
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore 
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

 

访问http://192.168.1.29,可以发现实现了高可用和负载均衡。

发表评论

0/200
253 点赞
0 评论
收藏