* 在兩臺主備節點編輯keepalived配置文件
* 主節點主機上:
```
]# vim /etc/keepalived/keepalived.conf
------------------------------------------------------------------------------
global_defs {
notification_email {
root@localhost
}
notification_email_from [email protected]
smtp_server 172.0.0.1
smtp_connect_timeout 30
router_id node1
vrrp_mcast_group4 224.0.11.18
}
vrrp_script chk_down {
script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
interval 2
weight -5
}
vrrp_script chk_httpd {
script "killall -0 httpd"
interval 2
weight 5
}
vrrp_instance VI_1 {
state MASTER
interface eno16777736
virtual_router_id 11
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass vHFHLlTA
}
virtual_ipaddress {
172.18.11.7 dev eno16777736 label eno16777736:0
}
track_script {
chk_down
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
vrrp_instance VI_2 {
state BACKUP
interface eno16777736
virtual_router_id 12
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass RHFHLlTA
}
virtual_ipaddress {
172.18.11.77 dev eno16777736 label eno16777736:1
}
track_script {
chk_down
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
```
* 備節點主機上:
```
]# vim /etc/keepalived/keepalived.conf
---------------------------------------------------------------
vrrp_instance VI_1 {
state BACKUP
interface eno16777736
virtual_router_id 11
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass vHFHLlTA
}
virtual_ipaddress {
172.18.11.7 dev eno16777736 label eno16777736:0
}
track_script {
chk_down
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
vrrp_instance VI_2 {
state MASTER
interface eno16777736
virtual_router_id 12
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass RHFHLlTA
}
virtual_ipaddress {
172.18.11.77 dev eno16777736 label eno16777736:1
}
track_script {
chk_down
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
主備節點都關閉keepalived服務;
]# systemctl stop keepalived.service
先啓動B備節點的keepalived服務;
]# systemctl start keepalived.service
]# ifconfig
可見有兩個VIP的地址都獲得了即:
172.18.11.7
172.18.11.77
此時,只有B節點,所以都當做主服務;
再啓動A節點的keepalived服務;
]# systemctl start keepalived.service
]# ifconfig
則發現,獲得了VIP爲172.18.11.7;
在A節點創建一個down文件
]# touch down
]# ifconfig
此時VIP丟失;
在B節點查看:
]# ifconfig
獲得成爲了兩個VIP的主用;
同理,在B節點創建一個down文件,A節點會成爲兩個VIP的主用;
```
以上演示就是互爲主備的高可用keepalived應用
**如果再加上vrrp_script的腳本監控nginx服務,於是這就雙主模型的nginx節點;如果nginx工作在反代模式就是高可用調度器;把配置文件中httpd改爲nginx,再調用即可;**