集群上配置Keepalived实现负载均衡

来源:互联网 发布:sam smith 知乎 编辑:程序博客网 时间:2024/06/06 01:08

简介:

  Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障。Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

  本文主要介绍利用keepalived来监控sparkJDBC进程,当一个节点的sparkJDBC进程宕机之后,能自动的将VIP切换到另外的节点上。

Keepalived的来监测sparkJDBC进程

  应用说明:利用keepalived,实VIP (virtual IP) 的飘动;检测sparkJDBC程,当集群服务器上的一个进程挂掉之后,可以自动飘到另一台服务器上。

1、安装配置好keepalived之后。(本文配置在10.199.33.1210.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/bashldapPid=$(ps -ef |grep SparkJDBCmdss8|grep -v grep|awk '{print $2}'|grep -v PID)#echo $ldapPidif [ "$ldapPid" == "" ]; then   service keepalived stop   exit 1else   exit 0fi 

  

  

测试:

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,写于武汉出差。

原创粉丝点击