高可用負載(主備節點)部署步驟
完成下圖一個簡單的高可用負載機制:
1.拷貝keepalived-1.2.19.tar.gz至Linux的/home目錄(也可以是其它目錄)
2.解壓並安裝keepalived:
tar -zxvf keepalived-1.2.19.tar.gz
yum install popt-devel
yum -y install openssl-devel
cd keepalived-1.2.19
./configure
make && make install
這樣keepalived編譯及安裝完成!
3.拷貝並複製keepalived:
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/sbin/keepalived /usr/sbin/
上傳並覆蓋keepalived.conf至/etc/keepalived
備註:keepalived.conf詳見步驟4
上傳check_haproxy.sh至/etc/keepalived
備註:check_haproxy.sh配置文件內容如下:
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/cfg/haproxy.cfg
sleep 3
if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi
4.修改keepalived.conf配置文件:
! Configuration File for keepalived
global_defs {
notification_email {
receiver@qq.com # 修改成可用的收件人地址,可爲多個
}
notification_email_from sender@qq.com # 修改成可用的發件人地址
smtp_server mail.iflytek.com # 修改成可用的郵箱代理地址
smtp_connect_timeout 30
router_id keepalived
}
vrrp_script chk_http_port {
script "/etc/keepalived/check_haproxy.sh" # 修改成Haproxy監控腳本路徑
interval 2 # 檢查間隔時間,單位:秒
}
vrrp_instance VI_MASTER {
state MASTER # 修改成MASTER,意味着該服務器爲主節點;若修改爲BACKUP,則爲備用節點,即當主機宕掉,從機接管
interface eth0
virtual_router_id 51
priority 150
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
192.168.1.1 # 修改成可用的虛擬IP
}
}
5.解壓haproxy-1.5.12並上傳至/usr/local
6.修改/usr/local/haproxy/cfg配置文件haproxy.cfg:
global
daemon
nbproc 1
group nobody
user nobody
maxconn 102400
ulimit-n 204821
chroot /usr/local/haproxy
defaults
mode tcp
maxconn 102400
retries 3
option redispatch
option abortonclose
timeout connect 600s
timeout client 600s
timeout server 600s
listen interface
bind 0.0.0.0:8001
balance leastconn
mode http
server interface1 192.168.85.100:8001 weight 1 maxconn 102400 check inter 10s
server interface2 192.168.85.101:8001 weight 1 maxconn 102400 check inter 10s
listen engine
bind 0.0.0.0:18006
balance leastconn
mode tcp
server engine1 192.168.85.100:18006 weight 1 maxconn 102400 check inter 10s
server engine2 192.168.85.101:18006 weight 1 maxconn 102400 check inter 10s
至此完成Haproxy配置修改!
7.運行如下命令,啓動Haproxy運行:
/etc/init.d/keepalived start
8.測試:
telnet 192.168.1.1 8001
telnet 192.168.1.1 18006
依次使用虛擬IP+路由端口的形式驗證對應端口是否可用!
說明:對於從機部署,與主機部署一致。這裏說明一下:對於HA,只會使用主節點,僅當主節點掛掉,纔會切換到從節點!