天天看點

【Keepalived】Keepalived實作主、備節點VIP的漂移(原創)

當使用Nginx作為應用伺服器前端軟負載的時候,可以通過KeepAlived來實作虛拟IP(Virtual IP, VIP)在主、備節點之前的漂移,其中VIP需要在申請伺服器的時候進行建立。

1)當主節點Nginx服務無法啟動,或者主節點伺服器當機,VIP将漂移到備用節點;

2)當主節點服務恢複(伺服器啟動、KeepAlived和Nginx服務正常運作),備用節點将會進行備用狀态,并移除VIP,VIP将漂移回主節點。

在這個切換過程中,正常情況下,前端使用者是無感覺的。

備用節點

# systemctl status keepalived.service

● keepalived.service - LVS and VRRP High Availability Monitor

Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)

Active: active (running) since Thu 2021-01-07 08:43:32 CST; 1min 21s ago

Process: 28260 ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)

Main PID: 28262 (keepalived)

Tasks: 2

CGroup: /system.slice/keepalived.service

├─28262 /usr/local/keepalived/sbin/keepalived -D

└─28264 /usr/local/keepalived/sbin/keepalived -D

Jan 07 08:43:36 ngServer2 Keepalived_vrrp[28264]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:43:41 ngServer2 Keepalived_vrrp[28264]: (VI_1) Sending/queueing gratuitous ARPs on eth0 for 10.xxx.xxx.17

Jan 07 08:43:41 ngServer2 Keepalived_vrrp[28264]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:43:41 ngServer2 Keepalived_vrrp[28264]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:43:41 ngServer2 Keepalived_vrrp[28264]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:43:41 ngServer2 Keepalived_vrrp[28264]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:43:41 ngServer2 Keepalived_vrrp[28264]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:44:26 ngServer2 Keepalived_vrrp[28264]: (VI_1) Master received advert from 10.xxx.xxx.15 with higher priority 122, ours 102

Jan 07 08:44:26 ngServer2 Keepalived_vrrp[28264]: (VI_1) Entering BACKUP STATE

Jan 07 08:44:26 ngServer2 Keepalived_vrrp[28264]: (VI_1) removing VIPs.

主節點

# systemctl status keepalived.service

● keepalived.service - LVS and VRRP High Availability Monitor

Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)

Active: active (running) since Thu 2021-01-07 08:44:24 CST; 16s ago

Process: 29790 ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)

Main PID: 29792 (keepalived)

Tasks: 2

CGroup: /system.slice/keepalived.service

├─29792 /usr/local/keepalived/sbin/keepalived -D

└─29793 /usr/local/keepalived/sbin/keepalived -D

Jan 07 08:44:28 ngServer1 Keepalived_vrrp[29793]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:44:28 ngServer1 Keepalived_vrrp[29793]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:44:28 ngServer1 Keepalived_vrrp[29793]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:44:28 ngServer1 Keepalived_vrrp[29793]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:44:33 ngServer1 Keepalived_vrrp[29793]: (VI_1) Sending/queueing gratuitous ARPs on eth0 for 10.xxx.xxx.17

Jan 07 08:44:33 ngServer1 Keepalived_vrrp[29793]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:44:33 ngServer1 Keepalived_vrrp[29793]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:44:33 ngServer1 Keepalived_vrrp[29793]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:44:33 ngServer1 Keepalived_vrrp[29793]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

Jan 07 08:44:33 ngServer1 Keepalived_vrrp[29793]: Sending gratuitous ARP on eth0 for 10.xxx.xxx.17

繼續閱讀