keepalived安裝配置實現高可用

介紹

爲了防止單點組件不可用,本文介紹用keepalived實現主備雙節點高可用,主節點不可用後自動切換到備節點繼續提供服務。

另外,keepalived還可以做負載均衡。

安裝

在組件對應的機器上安裝:

yum install -y keepalived

主節點配置

我們以禪道zbox爲例寫一個配置,如下。首先check_zbox.sh是一個檢測腳本,檢測應用是不是可用,不可用時停止keepalived服務以自動切換到從。然後是在網卡開了一個虛擬ip。

[root@ldap ~]# cat /etc/keepalived/keepalived.conf
vrrp_script check_zbox { 
    script "/etc/keepalived/check_zbox.sh"
    interval 2
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 150
    authentication {
        auth_type PASS
        auth_pass zbox
    }
	track_script {
		check_zbox
    }
    virtual_ipaddress {
        192.168.178.131
	}
}

檢測腳本內容如下:

[root@ldap ~]# cat /etc/keepalived/check_zbox.sh 
#!/bin/bash
return_code=`curl -s -w "%{http_code}" -o /dev/null http://127.0.0.1:90`
if [[ $return_code -ne 200 ]]; then
	systemctl stop keepalived
fi

記得給腳本加權限。

從節點配置

與主節點相比,注意以下字段:statevirtual_router_idpriorityvirtual_ipaddress

[root@vm2 ~]# cat /etc/keepalived/keepalived.conf 
vrrp_script check_zbox { 
    script "/etc/keepalived/check_zbox.sh"
    interval 2
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 100
    authentication {
        auth_type PASS
        auth_pass zbox
    }
    track_script {
        check_zbox
    }
    virtual_ipaddress {
        192.168.178.131
    }
}

啓動、測試

所有節點啓動keepalived:

systemctl start keepalived && systemctl enable keepalived

正常情況下,在主節點ip addr可以看到你定義的虛ip,在從節點看不到。訪問虛ip可以正常訪問組件。

然後如果停掉主節點的組件,訪問虛ip還是可以正常訪問組件,但是在主節點ip addr看不到虛ip了,因爲它跑到從節點了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章