什么是浮動IP,為什么要配置浮動IP
首先說一下為什么要配置浮動IP。
原文鏈接:https://blog.csdn.net/readiay/article/details/53538085



例如上面,我們給100.120主機添加一個100.80的IP,用戶訪問115.239.100.80這個IP,如果這台機器的服務掛了,我們就將這個ip轉移到100.121這個機器上,這樣對於用戶而言,他們始終訪問的就只是一個IP而已。在上面的場景中:115.239.100.80這個ip就是浮動IP,他會隨着主機服務掛掉而轉移到另外一個能夠提供相同服務的主機上,對於用戶而言,他們始終覺得服務是正常的。一般而言,在高可用集群中使用的比較多,例如LVS集群等,其實一個高可用集群一般而言都有浮動IP的,如果沒有,機器宕機了還怎么玩?
配置浮動IP
再給大家一個前提:
主機:192.168.122.131
從機:192.168.122.132
浮動IP:192.168.122.13
參考鏈接:https://blog.csdn.net/weixin_40006394/article/details/80451269
開始配置一下,以下前四步,在主從機上是一樣的操作,咱們就寫一遍啊。可以主機配一步,從機配一步
1、/etc/sysconfig/network-scripts/這個目錄下,可以通過ifconfig,先確定網卡的名字,然后在這個目錄找到對應的網卡,進行一下操作
cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens33:1 vi ifcfg-ens33:1
2、修改內容,ipaddr改為浮動IP、DEVICE=ens33:1,這個device一定要設置成對應的浮動網卡名稱,不然停啟會關掉主網卡的。
3、啟動新網卡,還在/etc/sysconfig/network-scripts/這個目錄下啊。
ifup ifcfg-ens33:1
4、查看是否有浮動IP,跟下邊圖片一樣,就設置成功了
ip a
5、敲黑板了啊!!!
主機192.168.122.131
vi /root/masterFloatIP.sh
添加內容如下,又要敲黑板了啊,注意格式,注意格式,注意格式。sh腳本if后面有個空格,then前邊有個分號, ping不通浮動IP地址,則啟動ifcfg-ens33:1,備注:-c 1這個是數字1,wc -l這個是字母l
FLOAT_IP="192.168.122.13" c=$(/usr/bin/ping $FLOAT_IP -c 1|grep Unreachable|wc -l) if [ $c -gt 0 ]; then /usr/sbin/ifup ifcfg-ens33:1 fi
這個腳本編寫完成后記得將腳本設置為可執行的,不然不起作用的。設置為可執行之后最好在嘗試執行,如果有問題可以趕緊改。
chmod +x masterFloatIP.sh
從機192.168.122.132
vi /root/slaveFloatIP.sh
添加內容如下,還是要注意格式的,來個說明啊,ping主服務器IP地址或者ping浮動IP地址,如果ping不通,說明主服務器掛掉了或者沒啟動浮動IP,則在從機上啟動浮動IP。當主服務器再上線,即能夠ping通主服務器且能ping通浮動IP地址,則在從機上關閉浮動IP。敲黑板了啊!!!看到標紅的地方了沒,c3那一行,一定要確認是不是這個網卡名稱,通過ip a查看是否是ifcfg-ens33:1,我的網卡名稱是ifcfg-ens33:1,但是通過ip a查看浮動ip的時候發現,最后是ens33:1,如下圖,所以寫成ifcfg-ens33:1,就不對了,需要將ifcfg-刪掉,最終直接監控ens33:1就可以了。還有注意一下,c1、c2、c3都是可以拿出來單獨執行的,c1、c2記得把$MASTER_IP和$FLOAT_IP改成對應的IP即可,一定要單獨測試沒問題,再整體測試腳本。
MASTER_IP="192.168.122.131" FLOAT_IP="192.168.122.13" c1=$(/usr/bin/ping $MASTER_IP -c 1|grep Unreachable|wc -l) c2=$(/usr/bin/ping $FLOAT_IP -c 1|grep Unreachable|wc -l) c3=$(/usr/sbin/ip addr|grep ens33:1) if [ $c1 -gt 0 -o $c2 -gt 0 ]; then /usr/sbin/ifup ifcfg-ens33:1 elif [ $c1 -eq 0 -a $c2 -eq 0 -a "$c3" ]; then /usr/sbin/ifdown ifcfg-ens33:1 fi
這個腳本編寫完成后記得將腳本設置為可執行的,不然不起作用的。設置為可執行之后最好在嘗試執行,如果有問題可以趕緊改。
chmod +x slaveFloatIP.sh
備注:如果不是只有一個從機,直接復制這個腳本內容即可。
6、操作相同,內容不同,自己看清楚啊,自動執行腳本不一樣的。
使用crontab每隔5秒自動執行腳本
主機192.168.122.131
crontab -e
修改內容
#每隔5秒自動執行腳本 * * * * * /root/masterFloatIP.sh * * * * * sleep 5; /root/masterFloatIP.sh * * * * * sleep 10; /root/masterFloatIP.sh * * * * * sleep 15; /root/masterFloatIP.sh * * * * * sleep 20; /root/masterFloatIP.sh * * * * * sleep 25; /root/masterFloatIP.sh * * * * * sleep 30; /root/masterFloatIP.sh * * * * * sleep 35; /root/masterFloatIP.sh * * * * * sleep 40; /root/masterFloatIP.sh * * * * * sleep 45; /root/masterFloatIP.sh * * * * * sleep 50; /root/masterFloatIP.sh * * * * * sleep 55; /root/masterFloatIP.sh
從機192.168.122.132
crontab -e
修改內容,從機可以設置每10秒執行一次腳本,不然主機在5秒內有時候啟動不來,最后就會導致從機一直啟動浮動IP了。
#每隔10秒自動執行腳本 * * * * * /root/slaveFloatIP.sh
* * * * * sleep 10; /root/slaveFloatIP.sh
* * * * * sleep 20; /root/slaveFloatIP.sh
* * * * * sleep 30; /root/slaveFloatIP.sh
* * * * * sleep 40; /root/slaveFloatIP.sh
* * * * * sleep 50; /root/slaveFloatIP.sh
以上就是全部流程了,設置完成后就可以自己進行測試了,關主機浮動IP,開從機浮動IP,自己想怎么測就怎么測。