高可用集群keepalived

一、简介

1、介绍以及作用

‌keepalived‌是一个基于vrrp(Virtual Router Redundancy Protocol)协议的高可用解决方案,主要用于防止lvs(Linux Virtual Server)系统中的单点故障问题。它通过监控lvs节点的工作状态,当主节点出现故障时,Keepalived能够自动将VIP(Virtual IP)转移到备用节点上,从而确保服务的连续性和高可用性。Keepalived的设计初衷是为了与LVS一起使用,以实现负载均衡和故障转移,但它也可以独立使用,通过监控各种服务和端口的状态来实现高可用性。(负载均衡可看之前作品讲解)

2、功能

  • VRRP协议实现‌:Keepalived使用VRRP协议来检测主节点的状态,并在主节点故障时接管其IP地址和提供服务。
  • ‌服务健康检查‌:Keepalived可以监控后端服务器的健康状况,如果检测到某个服务器故障,它将从负载均衡池中移除该服务器,确保只有健康的服务器提供服务。
  • ‌故障通知‌:当检测到故障时,Keepalived可以通过配置的SMTP服务器发送警报通知管理员。

 二、部署

1、架构图

 2、环境准备

确保防火墙,selinux关闭,最后是直接移除防火墙,能实现上网(一般来说配置好了网卡也没问题)

3、搭建配置

3.1、全局配置

配置四台主机,realserver1,2;ka1,2;

在realserver里面下载并启动httpd,ip 分别为172.25.254.110,120;172.25.254.10,20

接着在realserver1,2中echo 对应ip >/var/www/html/index.html中

在ka1,2中curl realserver1,2

接着在ka1,2中yum install keepalived -y安装keepalived

在ka1中Vim /etc/keepalived/keepalived.conf然后复制到ka2中

3.2、优先级实验

然后启动keepalived服务

Ka2中更改为备用,降低优先级。然后重启keepalived服务

优先使用IP a查看eth0是否有vip地址inet

使用tcpdump -i eth0 -nn host 224.0.0.18抓包,出现如下就代表成功,可以ka1和ka2切换master和bakcup看效果 。

3.3、实现日志功能

Vim /etc/rsyslog.conf

重启服务并查看是否生效

Systemctl restart keepalived.service

Systemctl restart rsyslog

Ll /var/log/keepalive.log

3.4、实现独立子配置文件

把上面的全部注释掉并复制

在上图中include的文件位置创建172.25.254.100.conf并复制进去也能成功。

3.5、实现keepalived单主架构

master配置

接着重启服务

Systemctl restart keepalived

IP a

可以看到出现了vip的地址

3.5.1、组播换单播

Vim /etc/keepalived/keepalived.conf

注意一定要写空格,我这里因为没注意到,排了很久的错!!!!!!!!!!!

使用tcpdump -i eth0 -nn src host 172.25.254.10 and dst 172.25.254.20 抓包

三、其他功能

1、实现邮箱配置

1.1、前提条件

这里以QQ邮箱为例子

在如图的位置,将服务打开,生成授权码

1.2、步骤

Ka1和ka2同理

Yum install mailx -y

vim /etc/mail.rc

#######mail set##########

set from=xxxxxxx@qq.com

set smtp=smtp.qq.com

set smtp-auth-user=xxxxxxx@qq.com

set smtp-auth-password=你的授权码

set smtp-auth=login set ssl-verify=ignore

Smtp-auth-password需要到QQ邮箱的安全设置里面打开

测试发邮箱

echo test message |mail -s test xxxxxxx@qq.com

1.3、编写脚本发送

vim /etc/keepalived/mail.sh

2、实现master/master双主架构

2.1、ka主机中

接下来vim /etc/keepalived/keepalived.conf

2.2、在两台realserver中

Ip a a 172.25.254.100/32 dev lo

Vim /etc/sysctl.d/arp.conf

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.lo.arp_ignore=1

net.ipv4.conf.lo.arp_announce=2

重启systemctl restart keepalived.service

完成后在ka2 curl vip

能curl两个主机ip代表设置正确。

3、实现haproxy高可用

haproxy在以往博客里可见

1、应用层监听

在ka1、ka2中yum install haproxy

然后 vim /etc/sysctl.conf

添加net.ipv4.ip_nonlocal_bind=1

Sysctl -p查看

接着在ka1和ka2中vim /etc/haproxy/haproxy.conf

2、虚拟服务器配置

Server 后面的IP是两个realserver的IP

接着在ka1和ka2中vim /etc/keepalived/keepalived.conf,把之前配置的server全部注释掉

同时配置,在如图的位置配置脚本,其内容为

#!/bin/bash 
killall -0 haproxy

添加track_script调用函数

ps:记得在realserver中删掉原VIP(这里很容易忘掉)

 ip a del 172.25.254.100/32 dev lo

 然后在一台主机中死循环

While true

Do

Curl 172.25.254.100

Done

成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值