久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

KeepAlive

 小侯筆記 2018-08-30

一:keepalive簡述

一;高可用的解決方案

1)vrrp協(xié)議的實(shí)現(xiàn)
keepalive
2)ais:完備HA集群

        RHCS(cman)
        heartbeat
        corosync

二:vrrp協(xié)議:

概念:在節(jié)點(diǎn)(主機(jī))出現(xiàn)故障時(shí),,實(shí)現(xiàn)ip地址的切換。
keepalive就是基于此協(xié)議而實(shí)現(xiàn)高可用的,。

Failover:故障切換,,即某資源的主節(jié)點(diǎn)故障時(shí),,將資源轉(zhuǎn)移至其它節(jié)點(diǎn)的操作,;
Failback:故障移回,,即某資源的主節(jié)點(diǎn)故障后重新修改上線后,將轉(zhuǎn)移至其它節(jié)點(diǎn)的資源重新切回的過程,;

術(shù)語:

    虛擬路由器:Virtual Router
       對應(yīng)與配置文件中/etc/keepalived中的virtual_ipaddress 
       生產(chǎn)中一個(gè)director主機(jī)上通常會(huì)有多個(gè)網(wǎng)卡,,對外為vip1,接收用戶請求,,對內(nèi)為vip2,將用戶的請求通過vip2發(fā)送給后端提供服務(wù)的主機(jī)RS,。在配置虛擬路由ip時(shí),。vip1與vip2需要配置在一個(gè)組內(nèi),實(shí)現(xiàn)在master主機(jī)出現(xiàn)故障時(shí),,vip1轉(zhuǎn)向backup備用主機(jī)時(shí),,vip2也同時(shí)轉(zhuǎn)向backup備用主機(jī),。不然vip2還停留在master主機(jī)上,轉(zhuǎn)向后端主機(jī)的請求將會(huì)無法到達(dá),。
      此塊在配置文件中
    虛擬路由器標(biāo)識:VRID(0-255)
        物理路由器:
            master:主設(shè)備
            backup:備用設(shè)備
            priority:優(yōu)先級
            VIP:Virtual IP,,虛擬ip 
            VMAC:Virutal MAC (00-00-5e-00-01-VRID)
                GraciousARP
            
        通告:心跳,優(yōu)先級等,;周期性,;
        
        搶占式,非搶占式,;
        
        安全工作:
            認(rèn)證:
                無認(rèn)證
                簡單字符認(rèn)證
                MD5

三:keepalived:

1:簡述

        vrrp協(xié)議的軟件實(shí)現(xiàn),,原生設(shè)計(jì)的目的為了高可用ipvs服務(wù):
            基于vrrp協(xié)議完成地址流動(dòng);
            為集群內(nèi)的所有節(jié)點(diǎn)生成ipvs規(guī)則(在配置文件中預(yù)先定義),;
            為ipvs集群的各RS做健康狀態(tài)檢測,;
            基于腳本調(diào)用接口通過執(zhí)行腳本完成腳本中定義的功能,進(jìn)而影響集群事務(wù),;
            
        組件:
            核心組件:
                vrrp stack   vrrp協(xié)議的實(shí)現(xiàn)    
                ipvs wrapper為集群內(nèi)的所有節(jié)點(diǎn)生成ipvs規(guī)則
                checkers    為ipvs集群的各RS做健康狀態(tài)檢測
            控制組件:

配置文件分析器

                IO復(fù)用器
                內(nèi)存管理組件

虛擬路由器的工作模型:

 單主:
 雙主

通知機(jī)制:

 notify_master
 notify_backup
 notify_fault

2:安裝

yum install keepalived
程序環(huán)境:

            主配置文件:/etc/keepalived/keepalived.conf
            主程序文件:/usr/sbin/keepalived
            Unit File:keepalived.service
            Unit File的環(huán)境配置文件:/etc/sysconfig/keepalived

3:配置文件

/etc/keepalived/keepalived.conf

配置文件組件部分:

            TOP HIERACHY
                GLOBAL CONFIGURATION
                    Global definitions
                    Static routes/addresses
                VRRPD CONFIGURATION
                    VRRP synchronization group(s):vrrp同步組,;
                    VRRP instance(s):每個(gè)vrrp instance即一個(gè)vrrp路由器;
                LVS CONFIGURATION
                    Virtual server group(s)
                    Virtual server(s):ipvs集群的vs和rs,;

4:man keepalived.conf

可以查看配置文件的具體使用細(xì)則
第一個(gè)配置段:GLOBAL CONFIGURATION
第二配置段:VRRPD CONFIGURATION

       此地址段為配置keepalived的核心配置段,。主要包括兩塊內(nèi)容

VRRP instance(s):vrrp實(shí)例

      一個(gè)vrrp instance 就是一個(gè)vrrp路由器

VRRP synchronization group(s):虛擬路由器同步組

   一個(gè)主機(jī)生產(chǎn)中一般需要配置兩個(gè)以上的虛擬路由器。此配置可以實(shí)現(xiàn)將多個(gè)虛擬路由器編制在一個(gè)組內(nèi),,可以實(shí)現(xiàn),,當(dāng)一個(gè)虛擬路由器偏移至另一臺(tái)主機(jī)時(shí),其余的虛擬路由器(vip)也同時(shí)偏移至另一臺(tái)主機(jī)上,。

inside_network # name of vrrp_instance (below) 內(nèi)網(wǎng)網(wǎng)絡(luò)
outside_network # One for each moveable IP. 外網(wǎng)網(wǎng)絡(luò)

clipboard.png
第三段:LVS CONFIGURATION

    高可用LVS時(shí)使用,。若使用Nginx時(shí)不用關(guān)注此塊

四:配置語法:

            配置虛擬路由器:
                vrrp_instance <STRING> {
                    ....
                }
                
    專用參數(shù):
    state MASTER|BACKUP:當(dāng)前節(jié)點(diǎn)在此虛擬路由器上的初始狀態(tài);只能有一個(gè)是MASTER,,余下的都應(yīng)該為BACKUP,;
    interface IFACE_NAME:綁定為當(dāng)前虛擬路由器使用的物理接口;
    virtual_router_id VRID:當(dāng)前虛擬路由器的惟一標(biāo)識,,范圍是0-255,;
    priority 100:當(dāng)前主機(jī)在此虛擬路徑器中的優(yōu)先級;范圍1-254,;
    advert_int 1:vrrp通告的時(shí)間間隔,;
    authentication {
            auth_type AH|PASS
            auth_pass <PASSWORD>
            }
    virtual_ipaddress {
        <IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
                192.168.200.17/24 dev eth1
                192.168.200.18/24 dev eth2 label eth2:1
                    }
        track_interface {
        eth0
        eth1
                        ...
    }
    配置要監(jiān)控的網(wǎng)絡(luò)接口,一旦接口出現(xiàn)故障,,則轉(zhuǎn)為FAULT狀態(tài),;
    nopreempt:定義工作模式為非搶占模式;
    preempt_delay 300:搶占式模式下,,節(jié)點(diǎn)上線后觸發(fā)新選舉操作的延遲時(shí)長,;
                    
    定義通知腳本:
    notify_master <STRING>|<QUOTED-STRING>:當(dāng)前節(jié)點(diǎn)成為主節(jié)點(diǎn)時(shí)觸發(fā)的腳本
    notify_backup <STRING>|<QUOTED-STRING>:當(dāng)前節(jié)點(diǎn)轉(zhuǎn)為備節(jié)點(diǎn)時(shí)觸發(fā)的腳本,;
    notify_fault <STRING>|<QUOTED-STRING>:當(dāng)前節(jié)點(diǎn)轉(zhuǎn)為“失敗”狀態(tài)時(shí)觸發(fā)的腳本;
                        
    notify <STRING>|<QUOTED-STRING>:通用格式的通知觸發(fā)機(jī)制,,一個(gè)腳本可完成以上三種狀態(tài)的轉(zhuǎn)換時(shí)的通知,;

五:通知機(jī)制

通知機(jī)制:
notify_master:to be master時(shí),調(diào)用指定的腳本完成輔助操作,,,,以“通知”為核心目標(biāo)
notify_backup to be backup時(shí),調(diào)用指定的腳本完成輔助操作,,,,以“通知”為核心目標(biāo)
notify_fault

通知腳本的使用方式:
示例通知腳本:
    #!/bin/bash
    #
    contact='root@localhost'

    notify() {
    local mailsubject="$(hostname) to be $1, vip floating"
    local mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
    echo "$mailbody" | mail -s "$mailsubject" $contact
    }

    case $1 in
    master)
        notify master
                ;;
    backup)
        notify backup
                ;;
    fault)
        notify fault
            ;;
            *)
        echo "Usage: $(basename $0) {master|backup|fault}"
            exit 1
            ;;
        esac            
            
腳本的調(diào)用方法:
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"    

六:D類地址

D類IP地址第一個(gè)字節(jié)以“1110”開始 。它并不指向特定的網(wǎng)絡(luò),,目前這一類地址被用在多點(diǎn)廣播(Multicast)中,。多點(diǎn)廣播地址用來一次尋址一組計(jì)算機(jī),它標(biāo)識共享同一協(xié)議的一組計(jì)算機(jī),。
D類地址又分為三種類型:即專用地址,、公用地址和私用地址;其中專用地址(224.0.0.0-224.0.0.255)用于網(wǎng)絡(luò)協(xié)議組的廣播,,公用地址(224.0.1.0-238.255.255.255)用于其它組播,,私用地址(239.0.0.0-239.255.255.255)用于測試。

在keepdlived的配置文件中
vrrp_mcast_group4 224.24.24.18
此地址用于向共同使用vrrp協(xié)議的主機(jī) 不斷的廣播自身的ip地址,,及優(yōu)先級,。優(yōu)先級高的主機(jī)將會(huì)使用vip

在現(xiàn)實(shí)中,會(huì)使用一根網(wǎng)線將 此兩臺(tái)主機(jī)直接綁定在一起,,實(shí)現(xiàn)此類功能

二:實(shí)現(xiàn)

一:配置前提

HA Cluster的配置前提:

(1) 各節(jié)點(diǎn)時(shí)間必須同步,;

            ntp, chrony
        (2) 確保iptables及selinux不會(huì)成為阻礙;
        (3) 各節(jié)點(diǎn)之間可通過主機(jī)名互相通信(對KA并非必須),;
            建議使用/etc/hosts文件實(shí)現(xiàn),; 
        (4) 確保各節(jié)點(diǎn)的用于集群服務(wù)的接口支持MULTICAST通信;
            D類:224-239,;

二:實(shí)驗(yàn)前奏

keepalive天生是用來高可用LVS的,。借助服務(wù)腳本接口可以實(shí)現(xiàn)高可用nginx和haproxy

第一步:單主模型
vrrp的地址轉(zhuǎn)移實(shí)現(xiàn)。單主模式,。一個(gè)虛擬路由vip
第二步:雙主模型
實(shí)現(xiàn)雙主節(jié)點(diǎn),,每一個(gè)節(jié)點(diǎn)都可以工作起來。雙虛擬路由ip
第三步:高可用LVS
在單主模式下,。增加后端的具體服務(wù),。實(shí)現(xiàn)節(jié)點(diǎn)切換時(shí),服務(wù)仍然可用,。

    后端的服務(wù)為兩臺(tái)主機(jī),,

第四步:增加check。檢查后端主機(jī)的健康狀況,。

    在后端主機(jī)全部down掉的情況之下,,增加sorry server.用keepalive主機(jī)實(shí)現(xiàn)

第五步:高可用haproxy
keepalive主機(jī)不再使用LVS(director)。使用nginx或者h(yuǎn)aproxy

三:keepalive 單主模式

環(huán)境:172.16.253.95 做master

  172.16.253.96 做backup

1:解讀配置文件

再解讀/etc/keepalived/keepalived.conf

 全局配置

global_defs {
notification_email {

  [email protected]    //出問題時(shí),,接收郵件的地址

}
notification_email_from [email protected] //郵件發(fā)件人地址

smtp_server 127.0.0.1 //郵件服務(wù)器地址
smtp_connect_timeout 30 //連接超時(shí)時(shí)間
router_id n2 //虛擬路由服務(wù)器地址(建議寫上主機(jī)名)
vrrp_mcast_group4 224.24.24.18 //多播地址段,,默認(rèn)為224.0.0.18.做實(shí)驗(yàn)時(shí)需要更改
}

vrrp_instance vrrp實(shí)例段,核心配置段

vrrp_instance VI_1 { //虛擬路由器的名稱,,多個(gè)時(shí),,名稱要不一樣

state MASTER       //虛擬路由器的狀態(tài),master|backup
interface eth0       //通過哪個(gè)網(wǎng)口發(fā)送vrrp廣播
virtual_router_id 01  //虛擬路由器的id,,要與同一臺(tái)主機(jī)上的其他虛擬路由器id 區(qū)分開來
priority 100         //物理路由器在此虛擬路由器上的優(yōu)先級
advert_int 1         //每隔多長時(shí)間 廣播一次自己的優(yōu)先級
authentication {      //傳遞信息的認(rèn)證方式,,密碼僅支持8位
    auth_type PASS
    auth_pass 1111
}   
virtual_ipaddress {         //虛擬路由的ip地址
172.16.253.100
}

}

2:更改配置文件

95主機(jī)的配置文件
注意:綠色字體為與96主機(jī)不一樣的地方。

  其他的配置文件內(nèi)容統(tǒng)統(tǒng)都注釋掉

global_defs {
notification_email {

[email protected]

}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_mcast_group4 224.24.24.18
}

vrrp_instance VI_1 {

state MASTER
interface eth0
virtual_router_id 01
priority 100
advert_int 1
authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
172.16.253.100
}

}
96主機(jī)的配置文件

global_defs {
notification_email {

[email protected]

}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id n2
vrrp_mcast_group4 224.24.24.18
}

vrrp_instance VI_1 {

state BACKUP
interface eth0
virtual_router_id 01
priority 95
advert_int 1
authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
172.16.253.100
}

}

3:重啟keepalived服務(wù)

95主機(jī) master:
systemctl restart keepalived.service
systemctl status keepalived.service

clipboard.png

ip a:虛擬路由器主機(jī)ip已經(jīng)添加進(jìn)來

clipboard.png

tcpdump -nn -i eth0 host 224.24.24.18
172.16.253.95 主機(jī)通過224.24.24.18向外發(fā)送vrrp廣播,,vrid為1 優(yōu)先級為100,,字節(jié)長度為20,簡單認(rèn)證方式,,每隔1秒發(fā)送一次

clipboard.png
96主機(jī):backup
systemctl restart keepalived.service
systemctl status keepalived.service

clipboard.png
4:模擬vip偏移至 96主機(jī)
95 主機(jī) stop keepalived服務(wù)
systemctl stop keepalived.service
在96主機(jī)上 vip已經(jīng)偏移至96主機(jī)

clipboard.png

再次在 95 主機(jī)重啟 keepalived服務(wù) VIP則將重新偏移至95主機(jī)
默認(rèn)vrrp工作于搶占 模式,。誰的級別高,vip偏移至哪臺(tái)主機(jī)上

clipboard.png

clipboard.png

四: 雙主模式

簡述:配置兩個(gè)虛擬路由器
下圖為框架:

clipboard.png

環(huán)境:先stop 95 96兩臺(tái)主機(jī)的keepalived服務(wù)

1:編輯配置文件

95主機(jī)增加如下代碼:
vrrp_instance VI_2 {

state BACKUP
interface eth0
virtual_router_id 02
priority 95
advert_int 1
authentication {
    auth_type PASS
    auth_pass 2222
}   
virtual_ipaddress {
172.16.253.200
}

}

96主機(jī):
增加如下代碼,,相當(dāng)于增加了另一組虛擬路由器vip2 172.16.253.200
vrrp_instance VI_2 {

state MASTER
interface eth0
virtual_router_id 02
priority 100
advert_int 1
authentication {
    auth_type PASS
    auth_pass 2222
}
virtual_ipaddress {
172.16.253.200
}

}

2:啟動(dòng)96主機(jī)服務(wù)

96主機(jī):先關(guān)閉服務(wù),,再啟動(dòng)服務(wù)。

[root@hkeepalived]#systemctl stop keepalived
[root@hkeepalived]#systemctl start keepalived
[root@hkeepalived]#systemctl status keepalived
兩個(gè) vip都添加至 eth0 網(wǎng)卡了

clipboard.png

clipboard.png

3:啟動(dòng)95主機(jī)服務(wù)

[root@hkeepalived]#systemctl stop keepalived
[root@hkeepalived]#systemctl start keepalived
[root@hkeepalived]#systemctl status keepalived

clipboard.png
啟動(dòng)95 主機(jī)服務(wù)之后 100地址的vip回至95主機(jī),。因?yàn)?72.16.253.100的vip在95主機(jī)的優(yōu)先級要比在96主機(jī)上高

五:調(diào)用通知機(jī)制

目的:演示通知機(jī)制中

 notify_master
 notify_bacup 是如何工作

1:95 96主機(jī)

編輯通知機(jī)制的腳本放置在/etc/keepalived下
vim notify.sh

!/bin/bash

contact='root@localhost'

            notify() {

            local mailsubject="$(hostname) to be $1, vip floating"
            local mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
            echo "$mailbody" | mail -s "$mailsubject" $contact
            }

            case $1 in
            master)
                    notify master
                                    ;;
            backup)
                    notify backup
                                    ;;
            fault)
                    notify fault
                            ;;
                            *)
                    echo "Usage: $(basename $0) {master|backup|fault}"
                            exit 1
                            ;;
            esac

2 :95 96 主機(jī)的配置文件恢復(fù)至單主模式

刪除 實(shí)驗(yàn)四中 增加的配置文件內(nèi)容

3:編輯配置文件

95 96 主機(jī)中 在vrrp_instance中增加如下代碼

notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"

clipboard.png

4:啟動(dòng)服務(wù)

啟動(dòng)96主機(jī)的服務(wù):
查看郵件有無發(fā)送:
mail

clipboard.png
啟動(dòng)95主機(jī)的服務(wù):

96主機(jī)將收到 變?yōu)?backup 的郵件

clipboard.png

六:LVS-DR模式--keepalive

環(huán)境:
95主機(jī) LVS
96主機(jī) LVS
97 98 主機(jī)RS

1:97 98 主機(jī) 安裝nginx

yum install nginx –y

編輯主頁文件:
97:vim /usr/share/nginx/html/index.html

  <h1> RS1111111111111</h1>

98:vim /usr/share/nginx/html/index.html

  <h1> RS22222222222</h1>

2:后端主機(jī) 內(nèi)核參數(shù)修改

97 98主機(jī)編輯腳本
1:
后端主機(jī)內(nèi)核參數(shù)的修改 及 vip的添加
編輯腳本,,實(shí)現(xiàn)對內(nèi)核參數(shù)的修改
vim /root/set.sh
#!/bin/bash

vip=172.16.0.199
mask=255.255.255.255
iface="lo:0"

case $1 in
start)

 echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
 echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
 echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
 echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

 ifconfig $iface $vip netmask $mask broadcast $vip up
 route add -host $vip dev $iface
 ;;

stop)

 ifconfig $iface down
 echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
 echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
 echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
 echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
 ;;

*)

 echo "start|stop"
 exit 1

;,;
esac

2:測試腳本實(shí)現(xiàn)
bash –x set.sh start
ip a
查看 lo的ip有無添加進(jìn)來

3:lvs主機(jī)95 配置服務(wù)

1 安裝ipvsadm
2 添加vip至eth0
ifconfig eth0:0 172.16.253.199 netmask 255.255.255.255 broadcast 172.16.253.199 up

3:配置LVS-NAT 服務(wù)
[root@h~]#ipvsadm -A -t 172.16.253.199:80 -s rr
[root@h~]#ipvsadm -a -t 172.16.253.199:80 -r 172.16.253.97:80 -g
[root@h~]#ipvsadm -a -t 172.16.253.199:80 -r 172.16.253.98:80 -g
[root@h~]#ipvsadm -L –n

clipboard.png
4:測試

clipboard.png

5 down掉 95主機(jī) lvs

在96主機(jī)上部署lvs
95主機(jī)
ipvsadm –C
ifdown eth0:0
96主機(jī)
重復(fù)步驟3 即可
1 安裝ipvsadm
2 添加vip至eth0
ifconfig eth0:0 172.16.253.199 netmask 255.255.255.255 broadcast 172.16.253.199 up

3:配置LVS-NAT 服務(wù)
[root@h~]#ipvsadm -A -t 172.16.253.199:80 -s rr
[root@h~]#ipvsadm -a -t 172.16.253.199:80 -r 172.16.253.97:80 -g
[root@h~]#ipvsadm -a -t 172.16.253.199:80 -r 172.16.253.98:80 -g
[root@h~]#ipvsadm -L –n

4 測試 DR模式正常與否

clipboard.png

5 測試ok后
96主機(jī)上清空所有規(guī)則
ipvsadm –C
ifconfig eth0:0 down

6:實(shí)現(xiàn)LVS

以下代碼是 實(shí)現(xiàn) LVS 調(diào)度
95 96 主機(jī) keepalived.conf配置文件中加入如下代碼

virtual_server 172.16.253.199 80 {

delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server  172.16.253.98 80{
    weight 1
    HTTP_GET {
        url {
          path /
          status_code 200
        } 
        } 
        connect_timeout 2
        nb_get_retry 3
        delay_before_retry 1
    }   
    
real_server  172.16.253.97 80{
    weight 1 
    HTTP_GET {
        url {
          path /
          status_code 200
        } 
        }

connect_timeout 2

        nb_get_retry 3
        delay_before_retry 1
    }   

}

重啟 keepalived服務(wù)

測試:

clipboard.png

7 重啟 95主機(jī)的keepalived服務(wù)

95主機(jī)的 優(yōu)先級比96的高
vip會(huì)偏移至95主機(jī)

96主機(jī)
clipboard.png

95主機(jī)

clipboard.png

8檢測健康狀況功能 有無實(shí)現(xiàn)

給98主機(jī)增加iptables規(guī)則 :所有tcp的訪問禁止掉
iptables –A INPUT –p tcp –dport 80 –j REJECT

curl http://172.16.253.199 訪問就會(huì)僅僅訪問 97主機(jī)了

clipboard.png

9:增加sorry server

在 95 96主機(jī)上增加soory server 內(nèi)容
當(dāng) 后端 9798主機(jī)的全部宕機(jī)之后,。95 96提供sorry server頁面服務(wù)

95 96主機(jī)
1:安裝nginx 提供sorry頁面
vim /usr/share/nginx/html/index.html
2:更改配置文件 keepalived.conf
在 virtual_server中
增加一行代碼 sorry_server 127.0.0.1 80

clipboard.png

重啟keepalived服務(wù)
[root@hkeepalived]#systemctl stop keepalived
[root@hkeepalived]#systemctl start keepalived

down掉 后端主機(jī) 9798 nginx服務(wù)

測試訪問:
curl http://172.16.253.199 訪問的是95 主機(jī)上的 sorry頁面

clipboard.png

關(guān)閉 95主機(jī)的keepalived 服務(wù)
測試訪問:
curl http://172.16.253.199 訪問的是96 主機(jī)上的 sorry頁面

clipboard.png

三:高可用服務(wù)

一:理論描述

目的:
借助腳本實(shí)現(xiàn) 高可用服務(wù)(ninx/http/haproxy)
也就是說在服務(wù)不可用時(shí),vip偏移至備用節(jié)點(diǎn),。而不是之前實(shí)現(xiàn)的主機(jī)down掉之后vip偏移至備用節(jié)點(diǎn),。

環(huán)境:
95 96主機(jī)。keepalived 服務(wù)stop
腳本例子:
1:rpm –ql keepalived
此文件內(nèi)有腳本的例子,,以及如何調(diào)用
/usr/share/doc/keepalived-1.2.13/samples/keepalived.conf.vrrp.localcheck

clipboard.png

2:cat /usr/share/doc/keepalived-1.2.13/samples/keepalived.conf.vrrp.localcheck

clipboard.png

3:腳本簡述
1:在配置文件中定義腳本
vrrp_script chk_sshd {

   script "killall -0 sshd"        # cheaper than pidof
   interval 2                      # check every 2 seconds
   weight -4                       # default prio: -4 if KO
   fall 2                          # require 2 failures for KO
   rise 2                          # require 2 successes for OK

}

調(diào)用腳本 使用 vrrp_script 關(guān)鍵詞
腳本名 chk_sshd

腳本內(nèi)容分為兩塊

1 script "killall -0 sshd"
表示 此段代碼 返回0值,,部分功能不變 
              返回非0值。要執(zhí)行一些關(guān)鍵指令

killall -0 sshd :測試 是否可以殺掉 sshd進(jìn)程,。能殺掉返回0值,,表示sshd服務(wù)

              正常運(yùn)行。返回其他值,表示sshd服務(wù)沒有運(yùn)行正常,。

2:weight -4 測試失敗權(quán)重-4

  fall 2        檢測失敗2次,,才減去權(quán)重
 rise -2  檢查兩次成功,ok 

2:在配置文件中調(diào)用腳本
在 vrrp_instance中
使用track_script {

   chk_haproxy weight 2
   chk_http_port
   chk_https_port
   chk_smtp_port
}

此種模式調(diào)用腳本

二:nginx 服務(wù) 高可用

1:先定義腳本,,再調(diào)用腳本

95 96主機(jī)同時(shí)更改配置文件
編輯keepalived.conf文件

 1)增加腳本
 2)調(diào)用腳本

1)編輯腳本
vim /etc/keepalived.conf

vrrp_script chk_nginx{
script "[[ -f /etc/keepalived/down ]] && exit 1 ||exit 0 "
interval 1
weight -10
fall 2
rise 1
}

script "[[ -f /etc/keepalived/down ]] && echo 1 ||echo 0 "

 down文件存在 返回1
 down文件不存在 返回0

依靠down文件存在與否 來降低/保持 主節(jié)點(diǎn)的權(quán)重

2)調(diào)用腳本

track_script {
  chk_nginx

}
使用 track_script 關(guān)鍵詞 調(diào)用腳本

clipboard.png

2:測試

在95主機(jī)上 touch /etc/keepalived/down文件
vip偏移至96主機(jī)

3:編輯 nginx配置文件

95 96主機(jī)
vim /etc/nginx/nginx.conf
server 中增加
location / {
proxy_pass http://websrvs;
}

server上增加
upstream websrvs {
server 172.16.253.97:80;
server 172.16.253.98:80;
}

此段主要實(shí)現(xiàn) nginx的 服務(wù)調(diào)度至后端服務(wù)器

4:測試web主頁訪問

clipboard.png

三:雙主模型nginx 高可用集群

上接實(shí)驗(yàn)三:

1:編輯配置文件

增加 vrrp_instance 實(shí)例2
96主機(jī) 在vip2上為MASTER
95主機(jī)在 vip2上為BACKUP
96主機(jī)增加如下內(nèi)容:
vrrp_instance VI_2 {

state MASTER
interface eth0
virtual_router_id 61
priority 100
advert_int 1
authentication {
    auth_type PASS
    auth_pass 1111
}   
virtual_ipaddress {
    172.16.253.188
}   

track_script {

  chk_nginx

}

}

clipboard.png

95主機(jī)增加如下內(nèi)容:
vrrp_instance VI_2 {

state BACKUP
interface eth0
virtual_router_id 61
priority 95
advert_int 1
authentication {
    auth_type PASS
    auth_pass 1111
}   
virtual_ipaddress {
    172.16.253.188
}   

track_script {

  chk_nginx
  chk_nn

clipboard.png

} 

### 2: 測試雙主模式
95主機(jī) 關(guān)閉—啟動(dòng)服務(wù)
96主機(jī)關(guān)閉服務(wù)

1)vip1 及vip2 都在 95主機(jī)上

clipboard.png

2)啟動(dòng)96 主機(jī)上的keepalived 服務(wù)
vip2 跳轉(zhuǎn)至 96主機(jī)上

clipboard.png

3) 在95 主機(jī)上 建 /etc/keepalived/down文件
vip1 199也跳轉(zhuǎn)至 96主機(jī)上

clipboard.png

4) 客戶端測試訪問

clipboard.png

3:改變 nginx的調(diào)度算法

clipboard.png

2 hash算法
hash $request_uri consistent
hash $remote_addr
hash $cookie_name
ip_hash 改為 hash $request_uri consistent

clipboard.png

}

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多