前言

 所谓双主模型。就是连个节点都配置外部地址,通过dns多条A记录进行调度,可以实现负载均衡效果(效果比NGINX和LVS的差),但是可以使主备节点都投入使用,这样不会浪费备用服务器的资源。
 大致拓扑图如下:
双主模型、.jpg
 keepalived定义两个实例,一个VIP为主,一个VIP为备;在第二个节点就和第一个节点的VIP配置相反(主的为备,备的为主),这个解释可能不怎么清楚,根据下面的实验就能够很好的理解双主模型。

一、环境准备

  • VIP-1:172.16.10.100
  • VIP-2: 172.16.10.200

内网地址:

  • Local-1:192.168.0.2
  • Local-2:192.168.0.3

虚拟机两台:
一般来讲,负载均衡器有两个网卡,一个对外提供服务,一个对内用于连接各个Real Server
网卡:

ens33   外部网络接口
ens37   内部网络接口

配置好内网网卡的地址:
内部网络地址

调度器-1: ens37 192.168.0.2
调度器-2: ens37 192.168.0.3

二、keepalived配置

调度器-1的配置文件

! Configuration File for keepalived

global_defs {
   notification_email {
        root@localhost
   }
   notification_email_from kaadmin@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node1
   vrrp_mcast_group4 224.0.0.100
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    #定义主的实例
    state MASTER
    interface ens37
    #通信的网络接口,用内网
    virtual_router_id 51
    #虚拟路由的唯一标识
    priority 100
    #优先级
    advert_int 1
    #心跳时间
    authentication {
        #认证信息
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        #VIP-1 地址配置
        172.16.10.100/16 dev ens33 label ens33:0
    }
}

vrrp_instance VI_2 {
    #备的实例
    state BACKUP
    interface ens37
    #物理接口,用内网接口
    virtual_router_id 52
    #虚拟路由的唯一标识,不能和上面的主的相同
    priority 99
    #优先级需要低于主
    advert_int 1
    #心跳时间
    authentication {
        #认证信息,auth_pass不能和主的相同,否则容易混淆
        auth_type PASS
        auth_pass 2222
    }
    virtual_ipaddress {
        #VIP-2地址配置
        172.16.20.200/16 dev ens33 label ens33:1
    }
}

调度器-2的配置文件

! Configuration File for keepalived

global_defs {
   notification_email {
        root@localhost
   }
   notification_email_from kaadmin@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node1
   vrrp_mcast_group4 224.0.0.100
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    #定义主的实例
    state BACKUP
    #此处修改为BACKUP-----主要修改项!
    interface ens37
    #通信的网络接口,用内网
    virtual_router_id 51
    #虚拟路由的唯一标识
    priority 99
    #降低优先级-----主要修改项!
    advert_int 1
    #心跳时间
    authentication {
        #认证信息
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        #VIP-1 地址配置
        172.16.10.100/16 dev ens33 label ens33:0
    }
}

vrrp_instance VI_2 {
    #备的实例
    state MASTER
    #修改为主-----主要修改项!
    interface ens37
    #物理接口,用内网接口
    virtual_router_id 52
    #虚拟路由的唯一标识,不能和上面的主的相同
    priority 100
    #提高优先级-----主要修改项!
    advert_int 1
    #心跳时间
    authentication {
        #认证信息,auth_pass不能和主的相同,否则容易混淆
        auth_type PASS
        auth_pass 2222
    }
    virtual_ipaddress {
        #VIP-2地址配置
        172.16.20.200/16 dev ens33 label ens33:1
    }
}

启动双方服务,既可以每台主机都有一个独立的VIP地址,假设节点一出现故障,那么节点二会把节点一的VIP配置在本机。此时节点二有两个VIP,都能够正常备用户访问。(反之同理)

连个配置文件的主要修改就是:第一个节点的备用实例,在节点二上面是主实例;相反,节点一的主实例在节点二为备用实例;同时需要修改优先级

END

Hello World

最后修改:2019 年 10 月 13 日 02 : 05 PM
如果觉得我的文章对你有用,请随意赞赏