KeepAlived简介

最近因为公司项目需要使用KeepAlived,所以正在学习KeepAlived。网上很多资料但是大多千篇一律,而且根本没有说清楚。所以自己整理了一下。

首先,KeepAlived是一种负载均衡高可用方案或者说技术,更偏向于高可用。

那么KeepAlived怎么实现的负载均衡和高可用呢?下面将详细说明

一、负载均衡

KeepAvlied的负载均衡其实是站在巨人的肩膀上,是基于LVS实现的。LVS全程linux virtual server即linux虚拟服务器。

关于LVS的介绍,网上很多,

个人的另一篇博客也有介绍LVS学习笔记

这里就不多说了。

二、高可用(这里指的是路由器高可用)

KeepAlived的高可用是基于VRRP协议实现的,即虚拟路由冗余协议。简单介绍下VRRP

其实从名称来看就大概能明白,冗余,也就是说要有多个路由器。这些路由器一起提供虚拟路由功能。

即VRRP由一组真实的路由器组成,这些路由器分为一个master和多个backup,对外提供一个虚拟IP,平时由master来负责处理,master会发送组播给backup,当backup收不到master的组播后,会认为master已经宕机

通过选举,根据VRRP的优先级(优先级相同选IP大的)从剩下的backup中选择一个成为新的master,接着对外提供服务。保证路由的高可用。

到这里相信KeepAlived的原理已经介绍完了。

简单说下KeepAlived内部组件

core:用来监控checker和vrrp的

checker:用来做心跳检测

vrrp:实现vrrp

最后说下KeepAlived的配置

主要包括以下几个配置区域,分别是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server

global_defs全局配置,一般用来在配置发生切换时的告警设置

static_ipaddress和static_routes,用来配置IP和路由的,一般服务器都由IP和路由了,一般不需要

vrrp_xxx这些就是跟vrrp协议相关的配置,实现高可用的时候需要配置

virtual_server跟LVS相关的配置,实现负载均衡的时候需要配置。

总结下,global_defs一般都需要配置,配置项具体内容网上很多,不介绍了。static_xxx一般不用配置,如果需要使用KeepAlived的高可用特性的话,需要配置下vrro_instance以及vrrp_xx这些配置项

如果要使用KeepAlived负载均衡特性的话,需要配置下virtual_server IP port,IP肯定是虚拟IP,port就看需要负载均衡的服务监听的端口号。

仅使用高可用特性的话,不需要配置virtual_server。但是要求访问vip的端口号和真实服务器的端口号一致。个人感觉跟LVS的DR模式很类似,通过vrrp直接将vip的mac地址设置成master的mac地址,直接转给master,

并且因为master绑定了vip,所以响应包不需要做任何特殊处理。

原文地址:https://www.cnblogs.com/lgh344902118/p/14955324.html