1. 程式人生 > >NGINX Keepalived高可用簡單使用 之十

NGINX Keepalived高可用簡單使用 之十

address oot ive 角色 虛擬ip 節點配置 不同 127.0.0.1 app

1、Keepalived高可用的工作原理

工作原理:在Keepalived服務正常工作時,主Master節點會不斷地向備節點發送(多播的方式)心跳消息,用以告訴備Backup節點自己還活著,當主Master節點發生故障時,就無法發送心跳消息,備節點也就因此無法繼續檢查到來自主Master節點的心跳了,於是調用自身的接管程序,接管主Master節點的IP資源及服務。而當主Master節點恢復時,備Backup節點又會釋放主節點故障時自身接管的IP資源及服務,恢復到原來的備用角色。

2、Keepalived的安裝

yum -y install keepalived

配置文件:/etc/keepalived/keepalived.conf

3、配置Keepalived實現單IP自動漂移接管

3.1、實例環境

lb01:10.3.151.183(主配置)
lb02:10.3.151.184(備配置)
VIP: 10.3.151.228 (虛擬IP)

3.2、主配置如下

! Configuration File for keepalived

global_defs {
   notification_email {
   [email protected]
}
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id lb01       #id為lb01,不同的keepalived.conf此ID要唯一
}

vrrp_instance VI_1 {           #實例名字為VI_1,相同實例的備節點名字要和這個相同
    state MASTER                #主狀態為MASTER(必須大寫),備節點為BACKUP
    interface eth2                  #通信接口網卡
    virtual_router_id 51         #實例ID為51,keepalived.conf裏唯一
    priority 150                      #優先級為150,數值越大,優先級越高,與BACKUP對比
    advert_int 1                     #通信檢查間隔為1秒
    authentication {
        auth_type PASS         #PASS認證類型
        auth_pass 2222          #密碼為2222
    }
    virtual_ipaddress {
        10.3.151.228/24 dev eth2 label eth2:1     #虛擬IP地址
    }
}

3.3、備節點配置文件

! Configuration File for keepalived

global_defs {
   notification_email {
   [email protected]
}
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id lb02
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth2
    virtual_router_id 51
    priority 140
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 2222
    }
    virtual_ipaddress {
        10.3.151.228/24 dev eth2 label eth2:1
    }
}

4、檢查keepalived是否生效

[root@yewu-app1 nginx]# ifconfig | grep "inet addr"
          inet addr:10.3.151.183  Bcast:10.3.151.255  Mask:255.255.255.0
          inet addr:10.3.151.228  Bcast:0.0.0.0  Mask:255.255.255.0   
                    #在主節點,檢查VIP是否生效
          inet addr:127.0.0.1  Mask:255.0.0.0
[root@yewu-app1 nginx]# /etc/init.d/keepalived stop      #停止主節點的keepalived
Stopping keepalived: [  OK  ]
[root@yewu-app1 nginx]# ifconfig | grep "inet addr"        #VIP已飄走
          inet addr:10.3.151.183  Bcast:10.3.151.255  Mask:255.255.255.0
          inet addr:127.0.0.1  Mask:255.0.0.0
[root@yewu-app2 nginx]# ifconfig | grep "inet addr"       #在備節點上查看VIP是否存在
          inet addr:10.3.151.184  Bcast:10.3.151.255  Mask:255.255.255.0
          inet addr:10.3.151.228  Bcast:0.0.0.0  Mask:255.255.255.0
          inet addr:127.0.0.1  Mask:255.0.0.0

NGINX Keepalived高可用簡單使用 之十