Keepalived+LVS实现高可用及负载均衡

LVS可以实现后端服务器的负载均衡,但是依然存在不少问题,比如调度器单点,不能实时检测后端服务器的状态。所以我们希望可以实现调度器有主备,并能根据后端服务器的健康情况增加删除RS。这就需要使用keepalived了。

Director(Master):192.168.88.100

Director(Slave):192.168.88.150

RS1:192.168.88.180

RS2:192.168.88.185

VIP:192.168.88.200

一、配置Director:

在两台Director上安装上keepalived,yum install -y keepalived

修改keepalived配置文件,以Master为例:vi /etc/keepalived/keepalived.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
vrrp_instance VI_1 {
    #备用服务器上为 BACKUP
    state MASTER
    #绑定vip的网卡为ens33,如果不一样,需要改一下
    interface ens33
    virtual_router_id 51
    #备用服务器上为90
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass hubininfo
    }
    virtual_ipaddress {
        192.168.88.200
    }
}
virtual_server 192.168.88.200 80 {
    #(每隔10秒查询realserver状态)
    delay_loop 10
    #(lvs 算法)
    lb_algo rr
    #(DR模式)
    lb_kind DR
    #(同一IP的连接60秒内被分配到同一台realserver)
    persistence_timeout 60
    #(用TCP协议检查realserver状态)
    protocol TCP

    real_server 192.168.88.180 80 {
        #(权重)
        weight 100
        TCP_CHECK {
        #(10秒无响应超时)
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.88.185 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
}

启动两台Director上的Keepalived,systemctl start keepalived

二、配置Real Server(以一台为例):

首先安装nginx,并修改nginx默认页不同;

yum install nginx;echo “1” > /usr/share/nginx/html/index.html;systemctl start nginx

echo “1” > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore

echo “2” > /proc/sys/net/ipv4/conf/lo/arp_announce

echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce

ifconfig lo:0 192.168.88.180 broadcast 192.168.88.180 netmask 255.255.255.255 up

route add -host 192.168.88.180 dev lo:0

三、测试:

关闭一台RS,测试能否访问另一台;

关闭主Director上的Keepalived,测试备份Director是否能工作。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

😉😐😡😈🙂😯🙁🙄😛😳😮:mrgreen:😆💡😀👿😥😎😕