Keepalived 高可用集群详解和配置

Keepalived 高可用集群

集群类型

1、LB(Load Balance):负载均衡

LVS:四层负载均衡

HAProxy:七层/四层 负载均衡

nginx:七层负载均衡

(http/upstream,stream/upstream)

2、HA(High Availa bility):高可用集群

数据库、Redis

3、SPoF(Single Point of Failure):解决单点故障

HPC:High Performance Computing 高性能集群

集群实现高可用

建立冗余机制

1、active/passive:主/备

2、active/active:双主

3、active–>HEARTBEAT–>passive:心跳

4、active <–>HEARTBEAT <–>active:

VRRP 虚拟路由冗余

在现实的网络环境中,主机之间的通信都是通过配置静态路由(默认网关)来完成的,而主机之间的路由器一旦出现故障,就会通信失败。因此在这种通信模式下,路由器就会有单点瓶颈问题,为了解决这个问题,引入了VRRP协议(虚拟路由冗余协议)。

VRRP协议是一种容错的主备模式的协议,保证当主机的下一跳路由出现故障时,由另一台路由器来代替出现故障的路由器进行工作,通过VRRP可以在网络发生故障时透明的进行设备切换而不影响主机之间的数据通信。

VRRP可以将两台或多台物理路由器设备虚拟成一个虚拟路由器,这个虚拟路由器通过虚拟IP(一个或多个)对外提供服务,而在虚拟路由器内部是多个物理路由器协同工作

虚拟路由器:Virtual Router
虚拟路由器标识:VRID(0-255),唯一标识虚拟路由器
VIP:Virtual IP
VMAC:Virutal MAC(00-00-5e-00-01-VRID)

物理路由器:
	master:主设备
	backup:备用设备
	priority:优先级
	
通告:
	心跳
	优先级等
	周期性

工作方式:
	抢占式
	非抢占式

安全认证:
	无认证
	简单字符认证:预共享密钥
	MD5
	
工作模式:
	主/备:单虚拟路由器
	主/主:主/备(虚拟路由器1),备/主(虚拟路由器2)

VRRP角色如下
1、虚拟路由器:VRRP组中所有的路由器,拥有虚拟的IP+MAC(O0-00-5e-00-01-VRID)地址

2、主路由器(master):虚拟路由器内部通常只有一台物理路由器对外提供服务,主路由器是由选举算法产生,对外提供各种网络功能

3、备份路由器(backup):VRRP组中除主路由器之外的所有路由器,不对外提供任何服务,只接受主路由的通告,当主路由器挂掉之后,重新进行选举算法接替master路由器。

master路由器由选举算法产生,它拥有对外服务的VIP,提供各种网络服务,如ARP请求、数据转发、ICMP等等,而backup路由器不拥有VIP,也不对外提供网络服务;当master发生故障时,backup将重新进行选举,产生一个新的master继续对外提供服务

Keepalived 配置

Keepalived 基本配置

在调度机处配置,下载相关的软件:keepalived,ipvsamd(LVS)/HAProxy。

同一高可用集群内只能使用一种调度软件(LVS在Keepalived内的规则会与HAProxy冲突,导致服务启动失败)

全局配置
在这里插入图片描述

虚拟网段配置
在这里插入图片描述

实现VIP的通信

修改配置文件

进行添加或将两项都注释掉,都可进行通信(组播通信可开启两项,单播通信时需将注释掉)

......
 12#   vrrp_strict
 13    vrrp_garp_interval 0
 14    vrrp_gna_interval 0
 15    vrrp_mcast_group4 224.0.0.18
 16#   vrrp_iptables
 17 }
 ......

在这里插入图片描述

日志管理

在日志配置文件内指定keepalived日志类型

[root@ka1 keepalived]# vim /etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-D -S 6"

在这里插入图片描述

修改主日志文件内的配置

[root@ka1 keepalived]# vim /etc/rsyslog.conf

在这里插入图片描述

Keepalived 子配置文件生成

创建子配置文件:
在这里插入图片描述

在子配置文件内输入内容,如果子配置文件内内容错误,则会导致识别不到虚拟IP

在这里插入图片描述
在这里插入图片描述

抢占与非抢占

非抢占模式

修改配置文件
将两台设备都设置为备份设备
在这里插入图片描述

当一台设备宕机时,另一台设备接管VIP
效果演示:
在这里插入图片描述

抢占模式

修改配置文件
将两台设备都设置为备份设备
在这里插入图片描述

效果演示:
在这里插入图片描述

单播模式

防止数据报文过多导致调度机的负载过大

将 vrrp_strict 禁用才能使单播模式生效

在这里插入图片描述

修改配置文件:
在这里插入图片描述

效果演示:

[root@kal ~]# tcpdump -i eth0 -nn src host 172.25.254.10 and dst 172.25.254.20

在这里插入图片描述

设置邮箱通知

1、安装邮箱软件

[root@ka1 ~]# yum install mailx -y

2、获取设置邮箱的登录密码(以QQ邮箱为例)

在登录QQ邮箱之后,在主页面找到账号与安全(Windows版)

在这里插入图片描述

点击进入到新页面,往下滑找到安全设置
在这里插入图片描述

点击进入到新页面,页面最下方会有一个”生成授权码“
在这里插入图片描述

3、编辑 mail 配置文件

在配置文件末尾处配置

set from=邮箱地址	----发送至哪个账号
set smtp=smtp.qq.com
set smtp-auth-user=邮箱地址
set smtp-auth-password=lufwpklkkrctdgei
set smtp-auth=login
set ssl-verify=ignore
[root@ka1 ~]# echo test message | mail -s test 邮箱地址	----测试mail配置文件是否正确

在这里插入图片描述

4、编辑自动通知脚本文件

[root@ka1 keepalived]# vim /etc/keepalived/mail.sh

#!/bin/bash
mail_dest='2111234420@qq.com'

mail_send()
{
  mail_subj="$HOSTNAME to be $1 vip remove"
  mail_mess="`date +%F\ %T`:vrrp remove,$HOSTNAME change $1"
  echo "$mail_mess" | mail -s "$mali_subj" $mail_dest
}
case $1 in
  master)
  mail_send master
  ;;
  backup)
  mail_send backup
  ;;
  fault)
  mail_sed fault
  ;;
  *)
  exit 1
  ;;
esac

在这里插入图片描述

5、编辑 keepalive 配置文件

调用编辑好的脚本文件,在设备发生变化时发送通知至指定账号
在这里插入图片描述

演示效果:

开启服务,KA1自动抢占VIP,KA2成为备份
在这里插入图片描述
在这里插入图片描述

多主模式

两台设备互为主/备,一台设备上存在两个虚拟的路由器ID

修改 keepalived 配置文件

一台设备内存在两个 VRID ,生成两个 VIP 地址,互相主/备

KA1 调度机:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

KA2 调度机:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

IPVS高可用

LVS 高可用

1、LVS 配置为DR 模式

服务主机配置:

[root@server1 ~]# ip a a 172.25.254.100/32 dev lo	----RS主机添加 VIP 地址

关闭 RS 主机的VRP 应答功能,只接不发
[root@server1 ~]# echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore 
[root@server1 ~]# echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@server1 ~]# echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce 
[root@server1 ~]# echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce 

2、在调度机处修改 Keepalived 的配置,添加 LVS 的规则

调度机下载 LVS 软件(ipvsadm):

[root@ka1 ~]# yum install ipvsadm -y	----安装 LVS 软件

修改 keepalived 配置文件:
在这里插入图片描述

3、演示效果

在这里插入图片描述

当一台 RS 主机宕机时,自动将宕机的设备规则移除:
在这里插入图片描述

未宕机时可访问两台服务器:
在这里插入图片描述

一台服务器宕机时只能访问一台:
在这里插入图片描述

HAproxy 高可用

使用脚本实现主从切换

脚本编写:

判断文件是否存在,不存在则输出值为0,存在则为1
#!/bin/bash
[ ! -f "/etc/test" ]

修改keepalived配置文件
在这里插入图片描述

调用脚本,当脚本的值为1时,将其权重降低30,从而达到切换主从的目的,当脚本值不为1时,其权重重新回到初始值
在这里插入图片描述

效果演示:

文件不存在时,VIP在 KA1上
在这里插入图片描述

文件存在时,VIP 漂移至 KA2 上
在这里插入图片描述
在这里插入图片描述

HAProxy 的高可用实现

注意:keepalived 配置文件内,LVS 的规则配置应注释掉;如果之前进行过 LVS 集群的配置,应将 RS 服务器的 arp 应答功能打开

1、调度机服务器下载 HAProxy

[root@ka1 ~]# yum install haproxy -y

2、修改 haproxy 配置文件

[root@ka2 ~]# vim /etc/haproxy/haproxy.cfg

在这里插入图片描述

3、修改调度机的内核参数

[root@ka2 ~]# vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind = 1	----在末尾行添加

在这里插入图片描述

4、编辑脚本

[root@ka1 keepalived]# vim /etc/keepalived/test.sh
#!/bin/bash
killall -0 haproxy	----当 haproxy 服务关闭时输出值1

5、修改 keepalived 配置文件
在这里插入图片描述

效果演示:
在这里插入图片描述

关闭 haproxy 服务,VIP 自动漂移至 KA2
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值