1、Keepalived:
Keepalived起初是针对LVS设计的辅助工具,用于提供故障切换和健康检查功能,它可以判断LVS负载调度器、节点服务器的可用性,并在必要时隔离并替换故障服务器。
Keepalived采用VRRP(Virtual Router Redundancy Protocol)热备份协议,通过软件方式实现Linux服务器的多机热备功能,VRRP是针对路由器的一种备份解决方案,由多台路由器组成一个热备组,通过公用的虚拟IP地址对外提供服务。
2、Keepalived安装与配置:
在CentOS上,可以通过yum命令安装keepalived和ipvsadm,之后,启用并启动keepalived服务。
安装HTTP服务,如httpd,以便于后续验证,在主调度器和备调度器上设置不同的网页内容,以便区分。
编辑keepalived的主配置文件/etc/keepalived/keepalived.conf,定义全局配置、VRRP实例等,主备节点的配置略有不同,主要体现在状态(MASTER或BACKUP)、优先级等方面。
3、Keepalived工作原理:
Keepalived通过VRRP协议实现高可用功能,VRRP是一种容错协议,旨在解决静态路由器单点故障问题,在keepalived服务之间,只有作为主的服务器会一直发送VRRP广播包,告诉备它还活着,当主不可用时,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。
Keepalived服务启动时,将产生三个相关进程:父进程Watchdog、子进程VRRP Child和Healthchecking Child,父进程通过unix domain socket每隔5秒发送一个hello消息给子进程,如果父进程无法发送消息给子进程,将认为子进程出现问题,于是会重启子进程。
4、Keepalived核心组件:
Watchdog:负责fork和监控子进程,对Checkers和vrrp stack进行监控。
Checkers:负责RealServer的健康状况检查,并在LVS的拓扑中移除、添加RealServer,支持layer4/5/7层的协议检查。
VRRP Stack:提供Director的故障转移功能,从而实现Director的高可用。
System Call:提供读取自定义脚本的功能。
IPVS wrapper:负责将配置文件中的IPVS相关规则发送到内核的ipvs模块。
Netlink Reflector:用来设定、监控vrrp的ip地址。
IO复用器、内存管理、配置文件分析器等。
5、Keepalived测试与验证:
可以通过长ping虚拟IP地址来测试keepalived的故障切换功能,断开主备其中一台,看看是否有丢包现象,正常切换可能会有一个丢包左右,同时断开主备,虚拟IP也会断开,证明VIP起作用。
切换后也可以通过浏览器打开虚拟IP地址来访问,观察页面内容是否切换为主或备的页面,从而验证keepalived的工作状态。
6、Keepalived常见问题排查:
如果无法通过浏览器访问自己的服务器IP,首先查看80端口是否开通,如果端口不通,说明还没有开通端口,需要登录到系统里面开放端口,可以查看防火墙状态,开放80端口,并重启防火墙。
Keepalived是一个功能强大的工具,主要用于提供服务器高可用性和负载均衡,通过VRRP协议实现故障切换和健康检查功能,确保服务的连续性和稳定性,在CentOS系统上,可以通过简单的配置和操作来实现keepalived的部署和使用。