Keepalived高可用服務器以及haproxy的負載均衡
Keepalive運行原理
Keepalived檢測每個服務節點狀態
當服務器節點異常或工作出現故障,keepalived將故障節點從集羣從集羣系統中踢除
故障節點恢復後,自動將其加入
使用keepalived軟件配置HA集羣
使用keepalived軟件配置HA集羣
1.提供服務的主機需要裝keepalived和web服務
yum -y install httpd keepalived
2.修改提供服務的主機的keepalived的配置文件 /
35行以後是做調度器的高可用配置
規劃主、備服務器,設置VIP(公網IP)
這裏的主備是搶佔式的
global_defs {
notification_email {
[email protected] //設置報警收件人郵箱
}
notification_email_from [email protected] //發件人郵箱
smtp_server 192.168.200.1 //郵件服務器地址
smtp_connect_timeout 30 //郵件超時時間
router_id LVS_DEVEL //設置路由ID
#vrrp_strict //這條需要註釋掉,不然下面的VIP就會不通
}
vrrp_instance webha { //webha 集羣名稱
state MASTER //描述名,
interface eth0 //與集羣內服務主機之間通信使用網卡
virtual_router_id 51
priority 100 //優先級,數值越高,越優先,主的優先級高,默認100
優先級最大255,超過失效
advert_int 1 //集羣內服務主機之間的通信時間間隔,單位秒
authentication {
auth_type PASS //認證類型
auth_pass 1111 //使用密碼
}
virtual_ipaddress { //設置VIP地址
192.168.200.16
}
}
當web服務down了,高可用集羣的調度主備不會浮動VIP
vim /root/check_80.sh
#!/bin/bash
netstat -ntulp | grep 80
if [ $? -ne 0 ];then
systemctl stop keepaloved.service
if
綜合應用:keepalived+LVS 配置LVS調度器HA集羣
需求:把主機A配置爲主LVS調度器,B主機爲備用的LVS調度器,當分發器A宕機了,B主機立即啓用
1.A、B上安裝keepalived軟件,ipvsadm軟件
Yum -y install keepalived ipvsadm
2.修改/etc/keepalived/keepalived.conf
修改優先級劃分主備(AB)服務主機
修改認證的密碼 主備(AB)服務器的密碼必須一致
修改IPV(virtual_ipaddress)爲192.168.4.253
以下配置A、B一致
virtual_server 192.168.4.253 80 { //定義虛擬調度機
delay_loop 6
lb_algo rr //調度算法
lb_kind DR //工作模式,與後臺realserver的工作模式一致
persistence_timeout 50
protocol TCP
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
real_server 192.168.4.52 80 { //後臺提供web服務的主機
weight 1
}
}
這個步驟是將A、B設爲爲keepalived主備機,並且加上LVS(ipvsadm),實現高可用(HA)和
負載均衡(LB)的綜合應用
3.在A、B上啓動並設置開機自啓(keepalived)
systemctl restart keepalived.service
systemctl enable keepalived.service
4.在客戶機上進行測試,
curl http://192.168.4.253
前提:後臺提供web服務的機器必須正常運行
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
ifconfig lo:1 192.168.4.253/32
擴展:以上配置做完之後,keepalived不會對後端的httpd服務做健康檢查,,如果需要,必須進行tcp連接檢查
real_server 192.168.4.52 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
使用Haproxy軟件配置LB集羣
工作模式 1.mode http
2.mode tcp
3.mode htalth
Mode http
1.http close
每次響應請求後立即斷開連接
2.keep-alive
每一連接可以發起多個請求,但是多個請求需要服務器按順序一個一個響應不能一次性作出響應
3.pipelining
一次連接可以發起多次請求,這些請求服務器並行進行響應,同時處理請求,減少了延遲,但是
對服務器的要求比較高,
配置:
1.裝包
Yum -y install haproxy
2.配置文件及介紹
Vim /etc/haproxy/haproxy.cfg
default:爲後續的其他部分設置默認參數,缺省參數可以被後續部分覆蓋
frontend:描述接收客戶端偵聽套接紫集
backend:描述轉發連接的服務器集
listen:把frontend和backend結合到一起的完整聲明
//這裏爲/etc/haproxy/haproxy.cfg的配置
default
stats uri /admin #以友好的頁面展示LB集羣實際狀況
listen webla 192.168.4.56:80
cookie SERVERID rewrite
balance roundrobin
server weba 192.168.4.55:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server webb 192.168.4.57:80 cookie app2inst2 check inter 2000 rise 2 fall 5
3.啓動服務及查看狀態
Systemctl restart haproxy
Systemctl status haproxy
4.有好頁面的訪問
http://192.168.4.56/admin