高可用集群keepalived 详细讲解

一:高可用集群keepalived

LB:Load Balance 负载均衡

负载均衡,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务

减轻了某个或某些实体的负载,将任务通过某种策略分配到多个实体上去,实现负载在不同实体间的平衡。这种技术可以显著提高系统的可扩展性、可用性和效率。
在实际应用中,负载均衡可以采取多种策略,如轮询、随机、最少连接等。这些策略各有优缺点,适用于不同的场景。例如,轮询策略可以确保工作负载均匀分配给各个实体;而最少连接策略则优先将新任务分配给当前连接数最少的实体。选择合适的策略对于保证系统的稳定性和性能至关重要。

HA High Availability 高可用集群
高可用集群,即当前服务器出现故障时,可以将该服务器中的服务、资源、IP等转移到另外一台服

 务器上,从而满足业务的持续性;这两台或多台服务器构成了服务器高可用集群,就是说要保证服务能一直一直的稳定运行,不能断断续续的

系统可用性
可用时间与可用时间和故障时间的和的比就是,系统可用性
A=MTBF/(MTBT+MTTR)
指标 : 99.9%, 99.99%, 99.999%,99.9999%
SLA Service-Level Agreement 服务等级协议(提供服务的企业与客户之间就服务的品质、水准、性能等方面所达成的双方共同认可的协议或契约)
实现高可用
提升系统高用性的解决方案:降低 MTTR- Mean Time To Repair( 平均故障时间 )
解决方案:建立冗余机制
active/passive /
active/active 双主
active --> HEARTBEAT --> passive
active <--> HEARTBEAT <--> active

VRRP Virtual Router Redundancy Protocol
虚拟路由冗余协议 , 解决静态网关单点风险
物理层 : 路由器、三层交换机
软件层 :keepalived

VRRP 相关术语
虚拟路由器: Virtual Router
虚拟路由器标识: VRID(0-255) ,唯一标识虚拟路由器
VIP Virtual IP
VMAC Virutal MAC (00-00-5e-00-01-VRID)
物理路由器:
master :主设备
backup :备用设备
priority :优先级
VRRP 相关技术
通告:心跳,优先级等;周期性
工作方式:抢占式,非抢占式
安全认证:
无认证
简单字符认证:预共享密钥
MD5
工作模式:
/ 备:单虚拟路由器
/ 主:主 / 备(虚拟路由器 1 ),备 / 主(虚拟路由器 2

.Keepalived 部署
下图是各个主机IP配置情况

用httpd的网页来测试,现在先测试网页可不可通

[root@server1 ~]# yum install httpd -y

[root@server1 ~]# echo This is 172.16.10.110 > /var/www/html/index.html

[root@server1 ~]# systemctl enable --now httpd


[root@server2 ~]# yum install httpd -y

[root@server2 ~]# echo This is 172.16.10.120 > /var/www/html/index.html

[root@server2 ~]# systemctl enable --now httpd

[root@ka1 ~]# curl 172.16.10.110
This is 172.16.10.110

[root@ka1 ~]# curl 172.16.10.120
This is 172.16.10.120

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

[root@ka2 ~]#  yum install keepalived -y

全局配置

配置虚拟路由器

保存退出,重启Keepalived服务

生成了VIP100

在ka2上同样的配置

测试

keepalived虚拟路由的通讯设定

在配置此步骤前在server上是 ping 不通VIP172.16.10.100的

可以看见现在可以ping通VIP172.16.10.100

keepalived日志分离

[root@ka1 ~]# vim /etc/sysconfig/keepalived 

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

keepalived独立子配置文件

当生产环境复杂时, /etc/keepalived/keepalived.conf 文件中内容过多,不易管理
将不同集群的配置,比如:不同集群的 VIP 配置放在独立的子配置文件中利用 include 指令可以实现包含 子配置文件

[root@ka1 ~]# mkdir -p /etc/keepalived/conf.d
[root@ka1 ~]# vim /etc/keepalived/conf.d/172.16.10.100.conf

重启keepalived服务

VIP依然存在,实现独立子配置文件

keepalived-非抢占模式和延迟抢占

默认为抢占模式 preempt ,即当高优先级的主机恢复在线后,会抢占低先级的主机的 master 角色,
这样会使 vip KA 主机中来回漂移,造成网络抖动,
建议设置为非抢占模式 nopreempt ,即高优先级主机恢复后,并不会抢占低优先级主机的 master 角色
非抢占模块下 , 如果原主机 down , VIP 迁移至的新主机 , 后续也发生 down , 仍会将 VIP 迁移回原主机

此时VIP在ka2上,只有当ka2重启时,VIP才会被ka2放掉,回到ka1

延迟抢占

当拥有VIP的主机重启后,延时5秒才转交VIP

VIP 单播配置
默认 keepalived 主机之间利用多播相互通告消息,会造成网络拥塞,可以替换成单播,减少网络流量

两边都要注释vrrp_strict  与单播模式冲突

重启ka1和ka2的keepalived服务

keepalived-邮件通知

QQ邮件通知

在这里生成授权码

记住这里的授权码

[root@ka1 ~]# vim /etc/mail.rc

发送一条测试邮件到邮箱

[root@ka1 ~]# echo hello word | mail -s test 2554511017@qq.com
 

成功受到邮件

通知脚本类型:

什么时候需要发通知

当前节点成为主节点时触发的脚本
notify_master <STRING>|<QUOTED-STRING>
当前节点转为备节点时触发的脚本
notify_backup <STRING>|<QUOTED-STRING>
当前节点转为 失败 状态时触发的脚本
notify_fault <STRING>|<QUOTED-STRING>
通用格式的通知触发机制,一个脚本可完成以上三种状态的转换时的通知
notify <STRING>|<QUOTED-STRING>
当停止 VRRP 时触发的脚本
notify_stop <STRING>|<QUOTED-STRING>

通知脚本的调用方法:直接在 vrrp_instance VI_1 语句块的末尾加下面行就行
例如:
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"

写完后要给脚本配置权限

[root@ka1 ~]# chmod +x /etc/keepalived/mail.sh

在[root@ka1 ~]# vim /etc/keepalived/keepalived.conf 中调用

最后能在邮箱中看见设备变化的邮件

keepalived-双主模式

master/slave 的单主架构,同一时间只有一个 Keepalived 对外提供服务,此主机繁忙,而另一台主机却
很空闲,利用率低下,可以使用 master/master 的双主架构,解决此问题。
master/master 的双主架构:
即将两个或以上 VIP 分别运行在不同的 keepalived 服务器,以实现服务器并行提供 web 访问的目的,提高
服务器资源利用率

ka2上也一样要配置

配置好后,保存退出重启

ka1在虚拟路由1上是主,在虚拟路由2上是备

ka2在虚拟路由1上是备,在虚拟路由2上是主

形成双主模式

keepalived-ipvs设定

先在server1和server2上添加VIP172.16.10.100

[root@server1 ~]# ip a a 172.16.10.100/32 dev lo

[root@server2 ~]# ip a a 172.16.10.100/32 dev lo
 

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

[root@ka2 ~]# yum install ipvsadm -y

ka2上与ka1一模一样

重启keepalived服务后

在客户端上curl 172.16.10.100,ka1或者ka2只要有一台存活即可

keepalived+haproxy的高可用集群

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

[root@ka1 ~]# sysctl --system              
[root@ka2 ~]# sysctl --system            
 

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

[root@ka1 ~]# systemctl enable --now haproxy.service 
 

ka1和ka2上不能有VIP

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

[root@ka2 ~]# systemctl enable --now haproxy.service 
 

ka2也是

ka2同样

ka1和ka2中故障一台,最终不影响服务的运行

实现高可用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值