1

实验环境

在上文中搭建完的DR模型基础上进行搭建基于keepalived的高可用环境。
回顾下上次搭建的server1和server2的配置:

首先将arp_ignore和arp_announce分别置为1和2,然后在环回接口上配置了子接口
其ip地址为192.168.247.100,子网掩码为255.255.255.255,也就是VIP地址。

本文在server1和server2的基础上搭建基于keepalived的高可用的负载均衡服务器,使用主从模型实现负载均衡服务器的高可用。

实验步骤

1、首先得初始化lvs的配置:
ipvsadm -C 
ifconfig ens33:8 down
2、server1和server2的配置不变。为了实现lvs的高可用,需要开启第4台主机lvs2。并且在lvs和lvs2上都得安装keepalived。
yum install keepalived ipvsadm -y
3、在lvs上进行配置keepalived
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vi keepalived.conf

配置文件修改如下:

! 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_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict  此行得注释掉不然无法访问
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.247.100/24 dev ens33 label ens33:8
    }
}

virtual_server 192.168.247.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 0
    protocol TCP

    real_server 192.168.247.131 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.247.132 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
4、然后进行lvs2的配置

首先在lvs上讲该配置文件拷贝到lvs2上

scp ./keepalived.conf root@192.168.247.133:`pwd`

然后再修改该配置文件:

! 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_DEVEL
   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 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.247.100/24 dev ens33 label ens33:8
    }
}

virtual_server 192.168.247.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 0
    protocol TCP

    real_server 192.168.247.131 80 {
        weight 1
        HTTP_GET {
            url {
              path /index.html
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.247.132 80 {
        weight 1
        HTTP_GET {
            url {
              path /index.html
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
5、在lvs和lvs2上输入ifconfig命令分别得到如下信息

3.png4.png
可以看到只有lvs,也就是MASTER上才会配置vip地址,而在从机上是没有的。

但是输入ipvsadm -ln可以发现主机和从机挂载的服务器是一样的。这是因为主机宕机后,从机充当主机的角色,也得拥有和主机相同的服务器信息,这样才能保证高可用。
6.png

6、启动lvs和lvs2上的keepalived服务:
systemctl start keepalived.service
7、在浏览器中输入192.168.247.100将会看到如下页面:

7.png8.png

如果我们现在停用lvs的keepalived服务:

systemctl stop keepalived.service

会发现在lvs2上启用ens33:8的地址,并且自动成为主机,对于客户端的访问没有任何影响。

同时如果重新启动lvs主机的话,MASTER会重新被lvs所抢占。


乔梓鑫
569 声望17 粉丝

主要分享个人学习经验和心得


引用和评论

0 条评论