叢集上配置Keepalived實現負載平衡,keepalived負載平衡
簡介:
Keepalived是一個基於VRRP協議來實現的服務高可用方案,可以利用其來避免IP單點故障。Keepalived的作用是檢測伺服器的狀態,如果有一台web伺服器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的伺服器從系統中剔除,同時使用其他伺服器代替該伺服器的工作,當伺服器工作正常後Keepalived自動將伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工幹涉,需要人工做的只是修複故障的伺服器。
本文主要介紹利用keepalived來監控sparkJDBC進程,當一個節點的sparkJDBC進程宕機之後,能自動的將VIP切換到另外的節點上。
Keepalived的來監測sparkJDBC進程
應用說明:利用keepalived,實現VIP (virtual IP) 的飄動;檢測sparkJDBC進程,當叢集伺服器上的一個進程掛掉之後,可以自動飄到另一台伺服器上。
1、安裝配置好keepalived之後。(本文配置在10.199.33.12和10.199.33.13)目錄為:
2、修改keepalived的設定檔:keepalived.conf
4、設定檔的內容如下:
vrrp_script chk_http_port { script "/etc/keepalived/check-sparksubmit-server.sh" interval 2 #間隔時間 weight 0 global_defs { router_id LVS_DEVEL } vrrp_instance VI_1 { state BACKUP interface em1 #伺服器的網卡 virtual_router_id 51 priority 90 #優先順序 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_http_port } virtual_ipaddress { 10.199.33.15 #虛擬IP } }}
4、進程監測指令碼的目錄要與keepalived設定檔一致:
設定檔中的內容:script "/etc/keepalived/check-sparksubmit-server.sh"
5、shell指令碼的程式的內容如下:紅色是進程的名字,通過它擷取進程ID。
#!/bin/bashldapPid=$(ps -ef |grep SparkJDBCmdss8|grep -v grep|awk '{print $2}'|grep -v PID)#echo $ldapPidif [ "$ldapPid" == "" ]; then service keepalived stop exit 1else exit 0fi
測試:
1、啟動所有點上的keepalived
2、通過命令查看虛擬IP的情況:ip a
kvdb02(10.199.33.12)上有VIP:
kvdb03(10.199.33.13)上沒有VIP:
3、啟動所有節點上的sparkJDBC進程:
4、kill掉kvdb02的SparkSubmit進程:
5、再次查看虛擬IP的情況:ip a
kvdb02(10.199.33.12)上沒有VIP:
kvdb03(10.199.33.13)上有VIP:
到此就全部測完了,這是第一次寫部落格!!!有什麼不對的地方請指正!
2017-09-11,寫於武漢出差。