双主和额外备用节点

1    介绍

Nginx利用Keepalived提供标准的主备形式的高可用(HA)。在主机发生问题的时候这提供了故障冗余。我们能使用额外节点扩展该功能并配置改变Keepalived提供的额外冗余和可伸缩性选项。

注意:在公共云部署Nginx,推荐使用4层或TCP负载均衡器服务云提供商提供的分配流量为双主NGINX功能。

2    为什么添加备用节点?

许多组织有冗余级别的严格要求,两个节点的主备系统可能不能满足需求。添加第三个节点配置其它两个节点宕机的接管事件,提供进一步的冗余并保证配置简单。这也允许维护节点不丢失冗余。

3    为什么配置双主?

你能以双主模式运行Nginx,在两个或更多的节点同时处理通信。使用多个活跃IP地址达到。每个IP地址托管一个Nginx实例,Keepalived配置确保,这些IP地址分布在两个或更多活跃节点。

  • 当托管多个服务,每个服务的DNS名称解析为其中一个IP地址。共享服务之间的IP地址。

  • 使用DNS轮询映射单个DNS名到多个IP地址。

  • 使用3层负载均衡设备,例如数据中心边缘负载均衡器分发3层通信在IP地址之间。

双主可以使用你的负载均衡集群的能力递增,但要注意,如果双主中的一个节点失效,能力将减半。你可以使用双主作为安全的一种形式,当两个节点是活动的时,提供足够的资源来吸收意料之外的通信高峰,你能使用双主在较大的集群中提供更多冗余。

注意,Nginx实例在负载均衡集群中不共享配置或状态。最佳性能是双主场景,确保连接从相同客户端路由到相同活跃IP地址,使用回话持久方法,例如sticky cookie,不依赖于服务器端状态。

4    配置添加备用节点

为了给主备HA添加额外备用节点,执行以下步骤:

1、新安装一个Nginx+Keepalived

2、从之前的备用节点复制/etc/keepalived/keepalived.conf到新节点的相同位置。

3、编辑新节点的keepalived.conf文件:

  • 降低priority,小于其它节点

  • 改变unicast_src_ip匹配新节点的主机IP

  • 在unicast_peer添加备用节点的IP,列出其它所有节点,额外节点192.168.10.12,其它两个节点192.168.10.10、192.168.10.11。VIP是192.168.10.100。

vrrp_script chk_nginx_service {

    script  "/usr/lib/keepalived/nginx-ha-check"

    interval 3

    weight   50

}

 

vrrp_instance VI_1 {

    interface         eth0

    state             BACKUP

    priority          99

    virtual_router_id 51

    advert_int        1

    unicast_src_ip    192.168.10.12

 

    unicast_peer {

        192.168.10.10

        192.168.10.11

    }

 

    authentication {

        auth_type PASS

        auth_pass 22a2fb02fb4bc6114ef361ef3925692f

    }

 

    virtual_ipaddress {

        192.168.10.100

    }

 

    track_script {

        chk_nginx_service

    }

 

    notify "/usr/lib/keepalived/nginx-ha-notify"

}

  • 编辑其它节点的keepalived.conf文件:
    • 添加新节点IP到unicast_peer

unicast_peer {

    192.168.10.11

    192.168.10.12

}

  • 重启所有节点的Keepalived

  •  依次停止Nginx服务进行测试

5    配置双主

为了两个节点同时通信,必须使用额外的虚拟IP。这个新VIP将活跃在之前的备用节点,因此,每个节点活跃节点使用它们自己的VIP。为了配置一个Nginx双主HA,执行以下步骤:

1、编辑备用节点的keepalived.conf文件:

  • 复制整个vrrp_instance block VI_1并粘贴以下块

  • 在新的vrrp_instance块中:

    • 重命名vrrp_instance为VI_2或其它唯一名称

    • 改变virtual_router_id为61或其它唯一值

    • 改变virtual_ipaddress为一个在相同子网中有效的IP,在该例子中是192.168.10.101

    • 改变priority值为100

vrrp_script chk_nginx_service {

    script  "/usr/lib/keepalived/nginx-ha-check"

    interval 3

    weight   50

}

 

vrrp_instance VI_1 {

    interface         eth0

    state             BACKUP

    priority          101

    virtual_router_id 51

    advert_int        1

    unicast_src_ip    192.168.10.10

 

    unicast_peer {

        192.168.10.11

    }

 

    authentication {

        auth_type PASS

        auth_pass 22a2fb02fb4bc6114ef361ef3925692f

    }

 

    virtual_ipaddress {

        192.168.10.100

    }

 

    track_script {

        chk_nginx_service

    }

 

    notify "/usr/lib/keepalived/nginx-ha-notify"

}

 

vrrp_instance VI_2 {

    interface         eth0

    state             BACKUP

    priority          100

    virtual_router_id 61

    advert_int         1

    unicast_src_ip    192.168.10.10

 

    unicast_peer {

        192.168.10.11

    }

 

    authentication {

        auth_type PASS

        auth_pass 22a2fb02fb4bc6114ef361ef3925692f

    }

 

    virtual_ipaddress {

        192.168.10.101

    }

 

    track_script {

        chk_nginx_service

    }

 

    notify "/usr/lib/keepalived/nginx-ha-notify"

}

  • 编辑主节点的keepalived.conf文件:
    • 重复执行备用节点的步骤

    •  设置新的vrrp_instance的priority值为99或低于备用节点
  • 重启所有节点

转载于:https://my.oschina.net/leeck/blog/730145

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值