企业集群高可用方案——keepalived单例实战和高可用主备服务切换实践

keepalived单例实战

事实上网络服务的高可用功能原理是比较简单的,本质上就是把手动的操作自动化解决了。

如果没有配置高可用服务,当服务器宕机了就得找一个新的服务器,重新进行环境初始化,配置IP,搭建服务,整个手动恢复的时间比较漫长,对于用户而言,那可真是糟透了。这个切换过程必须自动化完成,效率更好,体验更好。

高可用性的实验配置,就是开启一对服务器,同事配置好高可用服务,但是只有获取到虚拟IP(VIP)的主服务器提供服务,若是主节点宕机,VIP会自动漂移到备用服务器上,此时用户的请求,也就跟着走到了备用服务器,这个过程完全自动化,快速迁移。
Nginx主负载均衡
1.备份旧配置文件,定义新配置文件

[root@lb01 conf]# cd /etc/keepalived/
[root@lb01 keepalived]# cp keepalived.conf{,.bak}
[root@lb01 keepalived]# ls
keepalived.conf  keepalived.conf.bak
[root@lb01 keepalived]# >keepalived.conf

2.删除所有旧的配置,定义新配置,这个需要根据自己机器环境修改

[root@lb01 keepalived]# cat keepalived.conf -n
     1    global_defs {
     2        router_id lb01
     3    }
     4
     5    vrrp_instance VI_1 {
     6        state MASTER
     7        interface ens33
     8        virtual_router_id 51
     9        priority 150
    10        advert_int 1
    11        authentication {
    12            auth_type PASS
    13            auth_pass 1111
    14        }
                # 定义虚拟IP,也就是VIP,提供给用户访问的高可用地址,绑定网络接口ens33,别名ens33:3,主备节点要相同
    15        virtual_ipaddress {
    16            192.168.178.3/24 dev ens33 label ens33:3
    17        }
    18    }

3.启动keepalived

[root@lb01 keepalived]# systemctl start keepalived
[root@lb01 keepalived]# ps -ef|grep keep|grep -v grep
root      28529      1  1 11:16 ?        00:00:00 /usr/sbin/keepalived -D
root      28530  28529  0 11:16 ?        00:00:00 /usr/sbin/keepalived -D
root      28531  28529  0 11:16 ?        00:00:00 /usr/sbin/keepalived -D

4.此时检查是否生成新的VIP地址,192.168.178.3

[root@lb01 keepalived]# ip a |grep "inet 192"
    inet 192.168.178.126/24 brd 192.168.178.255 scope global noprefixroute ens33
    inet 192.168.178.150/24 scope global secondary ens33

Nginx辅负载均衡
1.备份旧配置文件,定义新配置文件

[root@lb02 conf]# cd /etc/keepalived/
[root@lb02 keepalived]# cp keepalived.conf{,.bak}
[root@lb02 keepalived]# ls
keepalived.conf  keepalived.conf.bak
[root@lb02 keepalived]# >keepalived.conf

2.删除所有旧的配置,定义新配置,这个需要根据自己机器环境修改

[root@lb02 keepalived]# cat -n keepalived.conf
     1
     2    global_defs {
     3        router_id lb02
     4    }
     5
     6    vrrp_instance VI_1 {
     7        state BACKUP
     8        interface ens33
     9        virtual_router_id 51
    10        priority 100
    11        advert_int 1
    12        authentication {
    13            auth_type PASS
    14            auth_pass 1111
    15        }
    16        virtual_ipaddress {
    17            192.168.178.3/24 dev ens33 label ens33:3
    18        }
    19    }

3.启动keepalived

[root@lb02 keepalived]# systemctl start keepalived
[root@lb02 keepalived]# ps -ef|grep keep|grep -v grep
root      28529      1  1 11:16 ?        00:00:00 /usr/sbin/keepalived -D
root      28530  28529  0 11:16 ?        00:00:00 /usr/sbin/keepalived -D
root      28531  28529  0 11:16 ?        00:00:00 /usr/sbin/keepalived -D

4.检查配置结果,是否出现了虚拟IP(VIP)

  • 正确的结果应该是没有出现VIP

  • 因为lb02位BACKUP,当主节点正常的时候,它不会接管VIP

  • 若是lb02看到了VIP,表示配置出错了!

  • 如果出现1b01,1b02抢夺VIP资源,排查故障思路

     1.主备服务器是否能够通信,可以ping检测
     2.是否没有正确配置防火墙,或是忘记关闭防火墙
     3.两台服务器的keepalived.conf是否写错(例如虚拟路由ID是否不一致)
    

高可用主备服务切换实践

1.停止主服务器的keepalived或者直接关机

[root@lb01 keepalived]# ip a |grep "inet 192"
    inet 192.168.178.126/24 brd 192.168.178.255 scope global noprefixroute ens33
    inet 192.168.178.150/24 scope global secondary ens33
[root@lb01 keepalived]# systemctl stop keepalived
[root@lb01 keepalived]# ip a |grep "inet 192"
    inet 192.168.178.126/24 brd 192.168.178.255 scope global noprefixroute ens33

可以看到,关闭服务后,VIP消失了
2.检查BACKUP机器状态

[root@lb02 ~]# ip a|grep "inet 192"
    inet 192.168.178.127/24 brd 192.168.178.255 scope global noprefixroute ens33
    inet 192.168.178.150/24 scope global secondary ens33:2

可以看到备节点lb02此时已经接管了VIP,并且这个接管期间,备节点还会主动发送ARP广播,让局域网内所有的客户端更新本地ARP缓存表,以便访问新接管VIP服务的节点。
arp是地址解析协议(ARP、Address Resolution Protocol),主要功能是根据IP地址获取物理地址(MAC地址)
3.恢复主节点,查看VIP动态

[root@lb01 keepalived]# systemctl start keepalived
[root@lb01 keepalived]# ip a |grep "inet 192"
    inet 192.168.178.126/24 brd 192.168.178.255 scope global noprefixroute ens33
    inet 192.168.178.150/24 scope global secondary ens33

此时会发现,再次启动keepalived主服务,MASTER很快会接管VIP,备服务器正确应该是释放了VIP,此时用户的请求也就再次转移到新机器了。
在这里插入图片描述
#明确单实例主备模式配置文件区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值