高可用集群 Keepalived

1、高可用集群keepalived:

1.1 集群类型

  • LB:load balance 负载均衡

LVS/haproxy/nginx

  • HA: high availability 高可用集群

数据库、redis

  • Spof:single point of failure 解决单点故障
  • HPC:high performance computing 高性能集群

Keepalved高可用:解决单点问题。防止LVS/haprixy 出现问题后导致整个服务失效。

1.2 SLA 服务等级协议

通过此协议判断运维服务的品质、水准

A = MTBF / ( MTBF+MTTR )

99.9%99.99%

1.3VRRP 协议(virtual router redundancy protocol )

虚拟路由冗余协议:解决静态网关单点问题,防止网络环境中单个路由器一单发生故障,从而导致业务无法提供的问题!!!!

物理层:路由、三层交换机

1.4 实现高可用

实现高可用方案:

  • 主备 —— 一个使用,一个闲置。只有一个vip
  • Active > HEARTBEAT > passive
  • 双主 —— 各有一个vip,并负责不同的业务
  • Active <> HEARTBEAT <> active

2、keepalived 部署

Keepalived 主备环境搭建:

环境要求:

  1. 各节点时间必须同步:ntp、chrony
  2. 必须关闭防火墙,否则主备之间无法接收到广播
  3. 关闭selinux

拓扑图:

主备服务器之间默认为抢占VIP模式

1、在主备服务器上安装keepalived

2、进行配置/etc/keepalived/keepalived.conf

主服务器配置:

Global_defs 全局配置:

Vrrp 配置:

备用服务器配置:

  1. 需要修改stats类型为backup备用服务器
  2. 优先级决定了VIP的归属,一般优先给主,所以优先级要小于主
  3. 同一个虚拟路由的route_id要一致

3、重启keepalived查看VIP

可以看到此时VIP是在主上的!!!!!当主出问题时,VIP会给到备keepalived

4、查看组播信息: VIP在哪就在哪广播

tcpdump -i eth0 -nn host 224.0.0.18

启动keepalived日志功能:

1、

-S log序号范围为 0-7

2、编辑 rsyslog.conf 添加日志,序号要对应。 并指定日志文件路劲

3、重启keepalived 和 rsyslog ,会自动生成日志文件

实现独立子配置文件:

当环境复杂时,/etc/keepalived/keepalived.conf 文件内容过多 ,不宜管理。这是就可以用到子配置文件将配置信息独立出去。

格式:

Include /path/file

1、主配置文件设置: 将之前的配置注释掉,写上子配置文件的路劲

*.conf 表示都读取以.conf结尾的文件

2、根据路径创建目录或文件,并写入子配置文件:

根据不同的子文件去设置不同的配置,更方便管理

3、重启服务查看

非抢占模式和延时抢占模式:nopreempt   preempt_delay

非抢占模式:nopreempt

两个 stats 都要是 BACKUP 模式!!!!!!!

主备会根据优先级抢占VIP,当主服务器出问题时,VIP会给到备服务器。但是当主服务器恢复后,主服务器又会抢占回VIP。

非抢占模式就是VIP在哪就不会改变,不会根据优先级抢占VIP,除非出问题

 

延时抢占模式:preempt_delay

同样是抢占模式,但是当主服务器恢复后不会立即抢回VIP,而是延时一段时间(默认300s)在抢回

VIP的单播配置:

由于keepalived默认主机之间使用多播的方式相互通告消息,会造成网络拥塞。可以替换成单播,减少网络的流量。

单播模式不支持 vrrp_strict !!!!!!!!!!!!

单播发送方向是从 VIP的服务器发送单播进行发送,没有VIP的不发送

1、单播模式不支持 vrrp_strict !!!!!!!!!!!!先注释strict

2、配置keepalived.conf

主备配置一样,注意IP!!!!!!!!!!

 unicast_src_ip <IP>     ——指定发送单播源,为自己

        unicast_peer {     ——指定接受单播的对方主机IP,可以为多个

                172.25.254.20

    ………………..

}

3、抓包查看效果!!注意单播方向,是从VIP服务器发送给其他服务器

此时VIP在10上:tcpdump -i eth0 -nn src host 172.25.254.10 and dst 172.25.254.20

Keepalived的通知脚本配置:

当keepalived状态变化时,可以自动触发脚本的执行。脚本比如可以是发送邮件的通知。

脚本默认以keepalived_script身份执行脚本。需要给 + x 权限

可以指定使用root用户执行脚本——

通知脚本类型:

  • 当前节点为主节点时触发的命令:

  • 当前节点转为备份节点时触发的命令:

  • 当前节点转变失败状态时触发的命令:

  • 以上三种状态的通用触发机制

  • 停止vrrp时触发的命令

使用方式: 配置keepalived.conf ,当状态变化时自动触发对应的脚本

创建路由通知脚本:

先配置qq邮箱的发送功能:密码通过qq邮箱设置得到

脚本示例: 需要给执行权限 x

重启后发送邮箱测试:

3.5 keepalived实现master/master 双主架构环境搭建:

配置双主架构

相当于在keepalived.conf 中再添加一个虚拟VIP

也是要创建主备,不过主备位置与前一个相反,保证一个主服务器上有一个VIP

指定不同的VI_2名称

指定不同的router_id 例:200

指定不同的VIP  例:200

查看VIP,然后就可以使用不同的VIP负责不同的问题

也可配置三主架构:

3.6 实现IPVS的高可用性:LVS + heepalived

1、虚拟服务器virtual_server 的定义格式

2、虚拟服务器配置架构

3、虚拟服务器架构中的配置参数

括号必须分行写,写在同一行会报错!!!!!

3.1 real_server 格式:

权重、应用层检查都要写在real_server中

3.2 应用层检查匹配:HTTP_GET/SSL_GET

3.3 TCP监测:

IPVS 实战案例:

实现主备的 LVS-DR 模式:

1、在两个real server 主机上配置http/nginx 网页服务,并能正常访问

2、配置heepalived 主备服务器的环境搭建,VIP能正常切换!!!!

3、接下来配置virtual_server虚拟LVS服务器,主备一致

  • virtualserver的地址应该与vrrp 中的virtual ipaddress一致
  • 设置算法为wrr、集群的类型为DR-----------RS的回复直接发给client
  • 注意注意虚拟服务器的结构。realserver应当配置在virtual_server中、而权重,HTTP_GET监测应当在real_server中!!!!!注意括号有无缺失和不能写在同一行!!!!

4、在keepalived 服务器中使用 ipvsadm -Ln 查看策略 (没有指令需要下载)

5、跟LVS配置一样,由于是DR模式,LVS虚拟服务器和real server都需要配置VIP,并且修改内核参数限制arp通告应答。

  • lo上配置VIP  RS12都要配置)也可使用ip a a 指令零时配置

VIP 掩码为32 172.25.254.100/32

  • 修改arp通告

arp.conf arp的子配置文件,将要修改的参数xieru

Sysctl -p 从文件内刷新配置

Sysctl --system 查看更新结果

6、访问查看结果:

 

可以看到算法为轮询。

由于添加了heepalived 的高可用,当keepalived主服务器出现问题时,VIP会给到备份服务器,依然能够保持用户端的访问!!!!

关闭主服务器:

此时VIP给到备份服务器;

依然能正常访问

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值