Centos7下安裝運行keepalived


master服務器ip地址:192.168.0.182

slave服務器ip地址:192.168.0.189

虛擬ip(VIP,一個尚未占用的內網ip即可)地址:192.168.0.180

 

 確認使用的網卡

使用第2個網卡【enp0s3】

 

使用wget命令下載,下載位置/usr/local/

keepalived下載地址:http://www.keepalived.org/download.html

wget http://www.keepalived.org/software/keepalived-1.4.2.tar.gz

解壓:

tar zxvf keepalived-1.4.2.tar.gz

安裝依賴插件:

yum install -y gcc openssl-devel popt-devel

編譯安裝:

cd keepalived-1.4.2

#指定安裝目錄
./configure --prefix=/usr/local/keepalived

make && make install

運行前配置

#
cp /usr/local/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/

#
mkdir /etc/keepalived

#
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

#
cp /usr/local/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

#
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

修改配置文件:

vim /etc/keepalived/keepalived.conf

具體配置如下:

master服務器配置:

! Configuration File for keepalived

global_defs {
    #一個沒重復的名字即可
    router_id xxoo_master
}

# 檢測nginx是否運行
vrrp_script chk_nginx {
        script "/etc/keepalived/nginx_check.sh"
        interval 2
        weight -20
}

vrrp_instance VI_1 {

    # 此處不設置為MASTER,通過priority來競爭master
    state BACKUP

    # 網卡名字,文章下方會給出如何獲取網卡名字的方法
    interface enp0s3

    # 同一個keepalived集群的virtual_router_id相同
    virtual_router_id 51

    # 權重,master要大於slave
    priority 100

    # 主備通訊時間間隔
    advert_int 1

    # 如果兩節點的上聯交換機禁用了組播,則采用vrrp單播通告的方式
    # 本機ip
    unicast_src_ip 192.168.0.182
    unicast_peer {
        # 其他機器ip
        192.168.0.189
    }

    # 設置nopreempt防止搶占資源
    nopreempt

    # 主備保持一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    # 與上方nginx運行狀況檢測呼應
    track_script {
        chk_nginx
    }

    virtual_ipaddress {
        # 虛擬ip地址(VIP,一個尚未占用的內網ip即可)
        192.168.0.180
    }
}

 

slave服務器配置:

! Configuration File for keepalived

global_defs {
    #一個沒重復的名字即可
    router_id xxoo_slave
}

# 檢測nginx是否運行
vrrp_script chk_nginx {
        script "/etc/keepalived/nginx_check.sh"
        interval 2
        weight -20
}

vrrp_instance VI_1 {

    # 此處不設置為MASTER,通過priority來競爭master
    state BACKUP

    # 網卡名字,文章下方會給出如何獲取網卡名字的方法
    interface enp0s3

    # 同一個keepalived集群的virtual_router_id相同
    virtual_router_id 51

    # 權重,master要大於slave
    priority 90

    # 主備通訊時間間隔
    advert_int 1

    # 如果兩節點的上聯交換機禁用了組播,則采用vrrp單播通告的方式
    # 本機ip
    unicast_src_ip 192.168.0.189
    unicast_peer {
        # 其他機器ip
        192.168.0.182
    }

    # 設置nopreempt防止搶占資源
    nopreempt

    # 主備保持一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    # 與上方nginx運行狀況檢測呼應
    track_script {
        chk_nginx
    }

    virtual_ipaddress {
        # 虛擬ip地址(VIP,一個尚未占用的內網ip即可)
        192.168.0.180
    }
}

 

nginx監聽腳本:

#創建nginx檢測腳本
#touch nginx_check.sh

#給腳本增加可執行權限
#chmod +x nginx_check.sh

腳本添加如下內容:

#! /bin/bash
pidof nginx
if [ $? -ne 0 ];then
/etc/init.d/keepalived stop
fi

 

防止出現腦裂現象(主備同時獲取了VIP地址)

# 指定keepalived配置的網卡:enp0s3,固定的VRRP廣播地址:224.0.0.18
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface enp0s3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface enp0s3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --reload

# 查看配置的規則
firewall-cmd --direct --get-rules ipv4 filter INPUT
firewall-cmd --direct --get-rules ipv4 filter OUTPUT

 

啟動服務:

service keepalived start

# 配置開機自啟動
systemctl enable keepalived

 

查看服務啟動情況:

ps -aux |grep keepalived

 

查看啟動日志:

journalctl -xe

 

查看keepalived日志

tail -f  /var/log/messages

 

配置成功后的效果。enp0s3是網卡名字;192.168.0.180是虛擬ip,已經成功綁定到網卡上。

 

QQ技術交流群:282575808

--------------------------------------

聲明: 原創文章,未經允許,禁止轉載!

--------------------------------------


免責聲明!

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



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