集群上配置Keepalived实现负载均衡
简介:
Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障。Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
本文主要介绍利用keepalived来监控sparkJDBC进程,当一个节点的sparkJDBC进程宕机之后,能自动的将VIP切换到另外的节点上。
Keepalived的来监测sparkJDBC进程
应用说明:利用keepalived,实现VIP (virtual IP) 的飘动;检测sparkJDBC进程,当集群服务器上的一个进程挂掉之后,可以自动飘到另一台服务器上。
1、安装配置好keepalived之后。(本文配置在10.199.33.12和10.199.33.13)目录为:
2、修改keepalived的配置文件:keepalived.conf
4、配置文件的内容如下:
vrrp_script chk_http_port { script "/etc/keepalived/check-sparksubmit-server.sh" interval 2 #间隔时间 weight 0 global_defs { router_id LVS_DEVEL } vrrp_instance VI_1 { state BACKUP interface em1 #服务器的网卡 virtual_router_id 51 priority 90 #优先级 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_http_port } virtual_ipaddress { 10.199.33.15 #虚拟的IP } } }
4、进程监测脚本的目录要与keepalived配置文件一致:
配置文件中的内容:script "/etc/keepalived/check-sparksubmit-server.sh"
5、shell脚本的程序的内容如下:红色是进程的名字,通过它获取进程ID。
#!/bin/bash ldapPid=$(ps -ef |grep SparkJDBCmdss8|grep -v grep|awk '{print $2}'|grep -v PID) #echo $ldapPid if [ "$ldapPid" == "" ]; then service keepalived stop exit 1 else exit 0 fi
测试:
1、启动所有点上的keepalived
2、通过命令查看虚拟IP的情况:ip a
kvdb02(10.199.33.12)上有VIP:
kvdb03(10.199.33.13)上没有VIP:
3、启动所有节点上的sparkJDBC进程:
4、kill掉kvdb02的SparkSubmit进程:
5、再次查看虚拟IP的情况:ip a
kvdb02(10.199.33.12)上没有VIP:
kvdb03(10.199.33.13)上有VIP:
到此就全部测完了,这是第一次写博客!!!有什么不对的地方请指正!
2017-09-11,写于武汉出差。