Keepalived高可用服務器以及haproxy的負載均衡
阿新 • • 發佈:2018-10-11
.com 宕機 coo str 調度 如果 vip 並行 延遲 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
Keepalived高可用服務器以及haproxy的負載均衡