Keepalived+LVS构建高可用集群

一、keepalive基础介绍

1.1Keepalive与VRRP

Keepalive 是一种用于监视系统或服务是否处于活动状态的机制。在网络环境中,它通常指定一个周期性的信号或数据包,用于检测设备、服务或连接是否仍然处于活动状态。如果设备或服务停止响应,相应的监视器将触发警报或采取预定义的操作。

VRRP 是一种用于提供冗余路由器功能的协议,通过允许多个路由器共享同一个虚拟 IP 地址来提供冗余。这样,即使其中一个路由器失效,网络流量仍然可以被另一个路由器接管,从而保证了网络的连通性和可用性。

这两种技术通常结合使用,因为 Keepalive 可以用于监视 VRRP 路由器的活动状态。如果 VRRP 主要路由器失效,备份路由器可以通过接收不再有主要路由器发送的 keepalive 信号来检测到这一事件,并迅速接管虚拟 IP 地址,从而确保网络的连通性。

1.2VRRP相关技术:

通告:心跳,优先级等;周期性

工作方式:抢占式,非抢占式,延迟抢占模式

安全认证:如没有安全认证,不在集群中的keeplive服务器设置超高的优先级,会造成事故

工作模式:

  • 主/备:单虚拟路径器
  • 主/主:主/备(虚拟路由器1),备/主(虚拟路由器2)

1.3工作原理

Keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议,保证集群高可用的一个服务软件,用来防止单点故障。将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该服务器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。

IPV4总共三种通信方式:单播,组播,广播。组播是指以224.0.0.0地址作为通信地址的一种方式。

1.4模块

分别是core、check和vrrp。

  • core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
  • check负责健康检查,包括常见的各种检查方式。
  • vrrp模块是来实现VRRP协议的。 

1.5架构

用户空间核心组件:

① vrrp stack:VIP消息通告,用来管理虚拟ip

② checkers:监测real server(简单来说 就是监控后端真实服务器的服务)是否存活

③ system call:实现 vrrp 协议状态转换时调用脚本的功能

④ SMTP:邮件组件(报警邮件)

⑤ IPVS wrapper:生成IPVS规则(直接生成ipvsadm)

⑥ Netlink Reflector:网络接口(将虚拟地址ip(vip)地址飘动)

⑦ WatchDog:监控进程(整个架构是否有问题)

⑧ 控制组件:提供keepalived.conf 的解析器,完成Keepalived配置

⑨ IO复用器:针对网络目的而优化的自己的线程抽象

⑩ 内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限

keeplive可以配合ngnix等软件,反向代理

1.6安装

yum install keepalived -y

1.7Keepalived 相关文件:

软件包名:keepalived
主程序文件:/usr/sbin/keepalived
主配置文件:/etc/keepalived/keepalived.conf
配置文件示例:/usr/share/doc/keepalived/
Unit File单元文件:/lib/systemd/system/keepalived.service
Unit File的环境配置文件:/etc/sysconfig/keepalived CentOS

1.7.1配置组成

/etc/keepalived/keepalived.conf 配置组成:

① 全局配置:这部分包括全局参数的定义,例如进程 ID 文件、日志文件路径、通知邮箱地址等。全局配置通常用于指定整体行为和设置。

② 模块配置:Keepalived 配置文件中会包含关于 VRRP 或者 LVS 模块的配置。对于 VRRP 模块,需要定义虚拟路由器的标识符、优先级、虚拟 IP 地址以及监视其他路由器可用性所需的健康检查。对于 LVS 模块,需要定义负载均衡器的设置,包括虚拟服务器、后端服务器池、负载均衡算法等。

③ VRRP 实例配置:在 VRRP 模式下,配置文件中会包含一个或多个 VRRP 实例的配置。每个实例都会定义一个独立的虚拟路由器,包括其标识符、优先级、虚拟 IP 地址、健康检查设置等。

④ LVS 实例配置:在 Load Balancer 模式下,配置文件中会包含一个或多个 LVS 实例的配置。每个实例会定义一个独立的负载均衡服务,包括虚拟服务器、后端服务器池、负载均衡算法等设置。

⑤ 状态转换脚本:Keepalived 允许用户定义状态转换时执行的自定义脚本,这些脚本可以在主备切换时执行特定的操作,如通知管理员、启动或停止相关服务等。

1.7.2全局配置:

全局配置参数定义了邮件通知设置、路由器标识符以及 VRRP 的一些行为特性,确保在需要时可以进行状态通知,并控制 VRRP 协议的一些细节行为。

global_defs {
   notification_email {          #定义了接收通知邮件的邮箱地址列表
     [email protected] 
     [email protected]
     [email protected]
   }
   notification_email_from Alexandre.Cassen@firew

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值