1. 程式人生 > >簡單快速搭建LVS+Keepalived 叢集

簡單快速搭建LVS+Keepalived 叢集

LVS+Keepalived 群集

Keepalived起初是專門針對LVS設計的一款強大的複製工具。

主要用來提供故障切換和健康檢查功能——判斷LVS負載排程器、節點伺服器的可用性,及時隔離並替換新的伺服器。

測試環境:

排程器兩臺(雙機熱備)IP

      192.168.30.30

      192.168.30.31

Web伺服器 IP

      192.168.30.33

      192.168.30.34

image.png

安裝所需軟體

centos7系統中已經自帶modprobe ip_vs 只需開啟即可使用

modprobe ip_vs #載入IP_vs模組

yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel ipvsadm  #安裝編譯工具、外掛和ipvsadm


在兩臺排程器上編譯安裝 keepalived


tar xf keepalived-1.4.2.tar.gz

 cd keepalived-1.4.2

./configure --prefix=/

 make && make install


cp keepalived/etc/init.d/keepalived /etc/init.d/    #加入系統管理服務

[[email protected] keepalived-1.4.2]#  systemctl enable keepalived #設為開機自啟

另一臺安裝方式相同


修改第一臺master keepalived.conf檔案

vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

   router_id LVS_01            #本伺服器的名稱

}

vrrp_instance VI_1 {            #定義VRRP熱備例項

    state MASTER             #熱備狀態,MASTER表示主伺服器,BACKUP表示從伺服器

    interface ens33            #承載VIP地址的物理介面

    virtual_router_id 51        #虛擬路由器的ID號,每個熱備組保持一致

    priority 110               #優先順序,數值越大優先順序越高

    advert_int 1               #通告間隔秒數(心跳頻率)

    authentication {            #熱備認證資訊,每個熱備組保持一致

        auth_type PASS        #認證型別

        auth_pass 6666        #密碼字串

    }

    virtual_ipaddress {          #指定漂移地址(VIP),可以有多個

        192.168.30.100

    }

}

virtual_server 192.168.30.100 80 {      #虛擬伺服器地址(VIP)、埠

        delay_loop 6               #健康檢查的間隔時間(秒)

        lb_algo rr                  #輪詢(rr)排程演算法

        lb_kind DR                 #直接路由(DR)群集工作模式

        persistence_timeout 60       #連線保持時間(秒)

        protocol TCP                #應用伺服器採用的是TCP協議

real_server 192.168.30.33 80 {         #第一個Web伺服器節點的地址、埠

        weight 1                   #節點的權重

        TCP_CHECK {                #健康檢查方式

        connect_port 80             #檢查的目標埠

        connect_timeout 3           #連線超時(秒)

        nb_get_retry 3              #重試次數

        delay_before_retry 3          #重試間隔

        }

}

real_server 192.168.30.34 80 {           #第二個Web伺服器節點的地址、埠

        weight 1

        TCP_CHECK {

             connect_port 80

             connect_timeout 3

             nb_get_retry 3

             delay_before_retry 3

     }

  }

}

[[email protected] keepalived-1.4.2]# service keepalived start

[[email protected] keepalived-1.4.2]# ip addr show dev ens33    //驗證綁定了的虛擬地址

image.png


備服務配置keepalived.conf檔案

! Configuration File for keepalived

global_defs {

   router_id LVS_02

}

vrrp_instance VI_1 {

    state BACKUP

    interface ens33

    virtual_router_id 51

    priority 105

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 6666

    }

    virtual_ipaddress {

        192.168.30.100

    }

}

virtual_server 192.168.30.100 80 {

        delay_loop 6

        lb_algo rr

        lb_kind DR

        persistence_timeout 60

        protocol TCP

real_server 192.168.30.33 80 {

        weight 1

        TCP_CHECK {

        connect_port 80

        connect_timeout 3

        nb_get_retry 3

        delay_before_retry 3

        }

}

real_server 192.168.30.34 80 {

        weight 1

        TCP_CHECK {

             connect_port 80

             connect_timeout 3

             nb_get_retry 3

             delay_before_retry 3

     }

  }

}

啟動服務


配置主伺服器LVS

[[email protected] keepalived-1.4.2]# modprobe ip_vs  #載入ip_vs模組

配置主伺服器LVS

image.png

備伺服器相同


web伺服器也要虛擬出192.168.30.100這個虛擬VIP

ifconfig lo:0 192.168.30.100 broadcast 192.168.30.100 netmask 255.255.255.255 up

route add -host 192.168.30.100 dev lo:0

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p 重新整理

檢視網絡卡狀態

image.png

另一臺web伺服器配置相同