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

     }

 }

 

整體配置結束。以備后用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM