Keepalived 集群在Linux下的搭建

【概述】:Keepalived 是一个免费开源的,用C编写。主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs),而高可用是通过VRRP协议实现多台机器之间的故障转移服务。

1.Keepalived高可用软件

    Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,keepalived除了能够管理LVS软件外,还可以作为其他服务的高可用解决方案软件。

    keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual  Router  Redundancy Protocol(虚拟路由冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由的单点故障问题的,它能保证当个别节点宕机时,整个网络可以不间断地运行。所以,keepalived一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可以实现系统网络服务的高可用功能。

2.Keepalived高可用故障切换转移原理

    Keepalived高可用服务对之间的故障切换转移,是通过VRRP来实现的。在keepalived服务工作时,主Master节点会不断地向备节点发送(多播的方式)心跳消息,用来告诉备Backup节点自己还活着。当主节点发生故障时,就无法发送心跳的消息了,备节点也因此无法继续检测到来自主节点的心跳了。于是就会调用自身的接管程序,接管主节点的IP资源和服务。当主节点恢复时,备节点又会释放主节点故障时自身接管的IP资源和服务,恢复到原来的备用角色。

【安装】

一、准备工作

    两台虚拟机如:  192.168.0.99 192.168.0.100

1、1、Openssl 安装

      安装之前先检查openssl是否安装,任意目录下执行:yum list installed openssl果如下,安装openssl

    

  

有安装,先安装openssl

安装步

1地址

https://www.openssl.org/source/openssl-1.1.0c.tar.gz

2/opt/software目

3/usr/local目下:

tar –zxvf openssl-1.1.0c.tar.gz –C /usr/local/

4 安装:./config && make && make install

:安装时间较长一直等待即可

    完成既然图如下:

  

    1.2  检查Libnl-devel

   

安装libnl-devel-1.1.4-3.el7.x86_64.rpm (keepalived的依赖插件)

方案一、在线安装

任意目录下执行yum -y install libnl libnl-devel

方案二、离线安装

1.下 libnl-devel-1.1.4-3.el7.x86_64.rpm

地址:https://access.redhat.com/downloads/

备注:在redhat官libnl-devel和libnfnetlink-devel下方式

2.将下载的libnl-devel-1.1.4-3.el7.x86_64.rpm依/home/software/目

      3、安装过程如下:安装过程中出现错误,加上忽略依赖即可

     

    

1.3 Libnfnetlink-devel

安装libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm (keepalived的依赖插件)

方案一、在线安装

任意目录下执行yum install -y libnfnetlink-devel

方案二、离线安装

    1.  libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm

地址:https://access.redhat.com/downloads/

备注:在redhat官libnl-devel和libnfnetlink-devel下方式

  1. 将下载libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm依/home/software/目
  2. 安装截图如下

 

      

  二、安装

    2、1 安装

     [root@tycoon ~]# wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz

    [root@tycoon ~]# tar -xzvf keepalived-1.2.24.tar.gz

    [root@tycoon ~]# cd keepalived-1.2.24

   [root@tycoon  keepalived-1.2.24]# ./configure --prefix=/usr/local/keepalived

   [root@tycoon keepalived-1.2.24]# make && make install

  2、2 设置快捷方式

         [root@tycoon ~]# mkdir /etc/keepalived

        [root@tycoon ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf

        [root@tycoon ~]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/keepalived

  [root@tycoon ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived

 2.3 建立软连

ln -s /usr/local/keepalived/sbin/keepalived /sbin/

启动

chkconfig keepalived on

查看服务状态

systemctl status keepalived

 

2.4 设置keepalived 服务开机启动

    Shell>chkconfig keepalived on

    Shell>service keepalived start   # 启动服务

    Shell>service keepalived stop    # 停止服务

    Shell>service keepalived restart  # 重启服务

 

2.5、配置服务启动方式

    Shell> cd /etc/init.d/

    Shell> chmod +x keepalived

    Shell> service keepalived start

               Starting keepalived: /bin/bash: keepalived: command not found

                                                                      [FAILED]

    Shell> ln -s /home/soft/keepalived/sbin/keepalived /usr/bin/

    Shell> service keepalived start

               Starting keepalived:                                       [  OK  ]

 

 2.6、启动

      

 

 2.7、验证启动状态

 

       

 

 

2.8、继续验证

  

 

【有三个进程说明启动成功】

  

   master配置文件

   

 ! Configuration File for keepalived

 global_defs {

    notification_email {

     # acassen@firewall.loc

     # failover@firewall.loc

     # sysadmin@firewall.loc

    }

    notification_email_from Alexandre.Cassen@firewall.loc

    # smtp_server 192.168.200.1

    # smtp_connect_timeout 30

    router_id SERVER_1

    vrrp_skip_check_adv_addr

    vrrp_garp_interval 0

    vrrp_gna_interval 0

 }

 vrrp_instance VI_1 {

     state MASTER

     interface eno16777736

     virtual_router_id 55

     priority 100

     protocol TCP

     advert_int 1

     authentication {

         auth_type PASS

         auth_pass 1111

     }

     virtual_ipaddress {

         192.168.0.199/24

     }

 }

从节点配置文件

 

 ! Configuration File for keepalived

 global_defs {

    notification_email {

     # acassen@firewall.loc

     # failover@firewall.loc

     # sysadmin@firewall.loc

    }

    notification_email_from Alexandre.Cassen@firewall.loc

    # smtp_server 192.168.200.1

    # smtp_connect_timeout 30

    router_id SERVER_1

    vrrp_skip_check_adv_addr

    vrrp_garp_interval 0

    vrrp_gna_interval 0

 }

 vrrp_instance VI_1 {

     state BACKUP

     interface eno16777736

     virtual_router_id 55

     priority 100

     protocol TCP

     advert_int 1

     authentication {

         auth_type PASS

         auth_pass 1111

     }

     virtual_ipaddress {

         192.168.0.199/24

     }

 }

 

整体配置结束。以备后用。

posted @ 2019-01-19 16:06  东北大亨  阅读(1673)  评论(0编辑  收藏  举报